【问题标题】:IIS8 Default Document yields 404 not found errorIIS8 默认文档产生 404 not found 错误
【发布时间】:2012-10-15 15:58:43
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: iis-8 default-document


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        【解决方案3】:

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

        【讨论】:

        • 在web.config的appSettings下添加一个如下图的入口
        • 不起作用!您是否有支持该 appSettings 键的插件/附加组件?
        猜你喜欢
        • 1970-01-01
        • 2015-02-12
        • 1970-01-01
        • 2016-06-01
        • 2019-05-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-03-01
        相关资源
        最近更新 更多