我在.NET 4.0应用程序中有一个经典的asp应用程序。我已将默认文档设置为 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>
我在本网站上查看了其他类似的问题,但没有多大帮助。
答案 0 :(得分:9)
我终于发现问题是因为使用.NET Framework 4.0将asp应用程序分配到经典模式的应用程序池中。
一旦我将应用程序池更改为使用.NET Framework 2.0(在经典模式下使用托管管道),默认文档也开始工作了!
答案 1 :(得分:5)
确保您对默认文档具有读/写Feature Delegation enabled:
DefaultDocument不会重定向到文件(即URL未更改)。它的行为类似于Server.Transfer
函数 - 在请求根URL(http://sitename/)时执行文件。您的login.asp可能已执行,但它有将登录用户重定向到其他页面的说明,或显示不同的内容。
确保未缓存响应。清除缓存和Cookie,然后重试。
答案 2 :(得分:2)
今天我遇到了一个部署到Azure的全新asp.net站点。我试过搞乱IIS和我的web.config包含
<defaultDocument enabled="true">
<files>
<clear />
<add value="Index.html" />
</files>
</defaultDocument>
原来我的问题是文件&gt;默认情况下,New Project向导使用.NET 4.5.2,但Azure中尚未完全支持。我使用.NET 4.5作为目标重新编译,现在一切正常!