4

我有一台带有 IIS 8 的新 Windows Server 2012 机器。我安装了一个使用 Windows 身份验证登录页面的应用程序。该应用程序使用 .NET 2.0(配置起来有点麻烦,但这是另一回事)如果您在 URL 中指定登录页面,该应用程序将完美运行。此登录页面是应用程序的默认文档,用于验证用户并在用户注册后自动登录。如果他们没有注册,那么它会将他们重定向到 Forms 身份验证登录页面,他们可以在其中输入本地应用程序凭据。

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

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

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

4

3 回答 3

1

这让我找到了我的情况的答案。实际上,在我将 index.html 移到列表顶部后,更改默认文档的顺序使我的 index.html 正常工作。我不需要进一步截断列表。

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

于 2013-09-11T18:19:34.153 回答
1

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

于 2012-10-16T08:49:27.590 回答
0

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

于 2013-03-09T21:24:54.890 回答