2012-10-15 52 views
3

我有一个新的Windows Server 2012机器与IIS 8. 我已经安装了一个应用程序,使用Windows身份验证的登录页面。 该应用程序使用.NET 2.0(这是一个配置的痛苦,但这是一个不同的故事) 如果您指定URL中的登录页面,该应用程序完美工作。 此登录页面是应用程序的默认文档,用于验证用户并在注册时自动登录。如果他们没有注册,那么它将重定向到一个Forms身份验证登录页面,他们可以输入本地应用程序凭证。IIS8默认文档产生404找不到错误

我遇到的问题是,只有当您直接浏览它时,登录页面才能正常工作I.E.在URL中输入名称。如果您使用IIs中的默认文档,它将返回404错误。

我在这里看到的其他文章是为IIS 7或IIS 7.5出现在表面上是相同的IIS 8,但这些问题的解决方案不能解决我的问题。

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

回答

1

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

0

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

+0

您能告诉我们您的解决方法吗? – felipekm

+0

在app.settings下的web.config中添加如下所示的条目

+1

不起作用!你有一个插件/插件,以表彰appSettings的关键吗? – dotnetguy

1

这让我回答了我的情况。事实上,改变默认文档的顺序后,我将index.html移动到列表顶部。我不需要进一步截断列表。

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