IIS8默认文档产生404未找到错误

时间:2012-10-15 15:58:44

标签: iis-8 default-document

我有一台装有IIS 8的新Windows Server 2012计算机。 我已经安装了一个使用Windows身份验证登录页面的应用程序。 该应用程序使用.NET 2.0(配置有点痛苦,但这是一个不同的故事) 如果您在URL中指定登录页面,则应用程序可以正常运行。 此登录页面是应用程序的默认文档,用于验证用户并在注册时自动将其登录。如果它们未注册,则会将它们重定向到Forms身份验证登录页面,以便他们输入本地应用程序凭据。

我遇到的问题是登录页面仅在您直接浏览时才有效。在URL中键入名称。如果您使用IIs中的默认文档,则会返回404错误。

我在这里看到过其他针对IIS 7或IIS 7.5的文章,表面上看起来与IIS 8相同,但这些问题的解决方案无法解决我的问题。

应用程序池当前配置为Classic(已尝试集成)并使用NetworkService作为应用程序帐户并启用了32位。它配置为.NET Framework v2.0。为站点和应用程序虚拟目录启用了默认文档。

3 个答案:

答案 0 :(得分:1)

我想我已经解决了这个问题。 IIS 8似乎不尊重默认文档列表中的文档顺序,并始终选择default.aspx,它显示为列表中的最后一个文档。
我的主应用程序没有default.aspx页面。当我删除默认文档列表中的所有条目,以便只显示主应用程序所需的唯一文档时,它正常工作。 这有点痛苦,因为我的应用程序有很多使用不同着陆页的子应用程序。其中一个使用default.aspx。我们通常在顶层指定它们并在子应用程序上使用继承,但现在看来每个子应用程序都需要单独配置。

答案 1 :(得分:1)

这使我找到了解决我的情况的答案。确实改变了默认文档的顺序后,我将index.html移动到列表的顶部。我不需要再进一步截断列表。

然而,我收到错误的原因是我以前在顶部有index.aspx,我确实在网站上有一个index.aspx文件。但事实证明ASP.Net尚未安装在服务器上。因此,服务器在index.aspx(实际上存在)上返回了一个非常误导性的404错误,它应该忽略它并进入我的测试index.html文件,或者给我一些消息,它无法读取.aspx文件

答案 2 :(得分:0)

我们可以在web.config中指定默认文档。在web.config中指定您的默认文档,它应该可以工作。