ASP默认文档在IIS7上无法工作

8

我有一个经典的asp应用程序,它在.NET 4.0应用程序中。我已经将默认文档设置为login.asp,但它没有自动重定向到该页面。然而,整个应用程序功能正常,如果我浏览到该页面,它甚至可以正确地显示login.asp

web.config中的默认文档部分如下:

<defaultDocument>
    <files>
        <clear />
        <add value="login.asp" />
        <add value="index.html" />
        <add value="default.aspx" />
        <add value="Default.htm" />
        <add value="Default.asp" />
        <add value="index.htm" />
        <add value="iisstart.htm" />
    </files>
</defaultDocument>

我看过这个网站上其他类似的问题,但并没有太大帮助。

3个回答

13

我最终发现问题是因为ASP应用程序被分配到一个使用.NET Framework 4.0的经典模式应用程序池中。

一旦我将应用程序池更改为使用.NET Framework 2.0(在经典模式下使用托管管道),默认文档也开始工作了!


1
你确定新的应用程序池是在经典模式下吗?我忘记了 system.webServer 部分只在集成模式下工作。 - Artem Koshelev
是的,我不得不将它设置为经典模式才能使asp应用程序正常工作。 - Shirlz
你救了我的一周!网站没有任何改变,但是Windows更新一定使得某些东西发生了变化,因为网站会启动我的自定义“DefaultPage”。我没有改变管道模式,但将.NET版本设置为2.0.x让网站再次加载。 - Gustav

5
  1. 确保你已启用了读/写特性委派默认文档功能: 1.jpg

  2. DefaultDocument不会重定向到文件(即URL不会改变)。它与Server.Transfer功能类似 - 当请求根URL (http://sitename/)时,执行该文件。可能,你的login.asp被执行,但其中包含将已登录用户重定向到其他页面或向他们显示不同内容的指令。

  3. 确保响应没有被缓存。清除缓存和cookies并重试。


谢谢您清晰明了的指示。我终于发现问题是因为 ASP 应用程序被分配到一个使用 .NET Framework 4.0 的经典模式应用程序池中。一旦我改成使用 .NET 2.0,默认文档也开始工作了! - Shirlz

4
今天我在Azure部署了一个全新的asp.net网站,遇到了这个问题。我尝试了调整IIS和我的web.config配置文件,但都没有解决该问题。
<defaultDocument enabled="true">
    <files>
        <clear />
        <add value="Index.html" />
    </files>
</defaultDocument>

原来我的问题是因为“文件”>“新建项目”向导默认使用.NET 4.5.2,而Azure尚不完全支持它。我重新编译,将目标设置为.NET 4.5,现在一切都正常了!

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接