【问题标题】:Default Document not trying all files in iis 8.5默认文档未尝试 iis 8.5 中的所有文件
【发布时间】:2015-05-04 13:56:57
【问题描述】:

我有一个网站,其中包含 IIS 8.5 Windows 2012 R2 上默认文档的默认设置。

<system.webServer>
  <defaultDocument enabled="true">
    <files>
      <add value="Default.aspx" />
      <add value="Default.htm" />
      <add value="Default.asp" />
      <add value="index.htm" />
      <add value="index.html" />
      <add value="iisstart.htm" />
    </files>
  </defaultDocument>
</system.webServer>

当我浏览到一个没有文件名的 URL (mysite.com/Content/) 时,IIS 将只尝试 default.aspx 而不会尝试列表中的其他文件 (index.html)。 IIS 尝试加载 default.aspx,我得到一个 404。奇怪的是该目录中没有 default.aspx 文件,并且 index.html 确实存在。如果我直接浏览到 index.html 页面会正确显示。根据Microsoft documentation on default document,它应该尝试列表中的下一个文件,直到找到存在的文件。

我用

明确地将 web.config 文件添加到子目录
<defaultDocument enabled="true">
  <files>
      <clear />
       <add value="index.html" />
   </files>
 </defaultDocument>

而 IIS 仍在尝试使用 default.aspx。有没有人遇到过这个?您对为什么这不按记录工作有任何建议吗?

【问题讨论】:

  • 您是否在重置设置后尝试重置 IIS?
  • 你有设置路由吗?
  • 是否安装了任何特殊的模块/处理程序?
  • 可能是权限问题?允许/禁止的扩展问题? ASP.NET 否决了您的设置?
  • 是的 - 进行了 IIs 重置。未设置路由 - 使用一条规则安装旧的 URL 重写模块(无相关)。

标签: asp.net iis windows2012


【解决方案1】:
  1. 尝试删除/禁用旧的 URL 重写模块? (暂时)
  2. 如果您需要身份验证,请确保登录页面存在。

(从上面复制的其他建议,我已经包括在内,以防有人 否则阅读此问题)

  1. 检查源代码中的任何路由。
  2. 检查任何可能导致重定向或拦截调用的特殊模块或处理程序。

【讨论】:

  • 如果你想使用 index.html 作为默认页面。您需要点击 iis 网站并点击默认文档,添加 index.html 作为您的默认文档。
【解决方案2】:

使默认文档指令起作用的一种方法是: 转到 IIS/应用程序池 将“托管管道模式”更改为经典模式而不是集成模式。 这对我有用。

【讨论】:

    【解决方案3】:

    如果您禁用默认文档但启用了目录浏览,则当浏览器发出对根目录的请求时,IIS 会返回目录列表。如果同时禁用默认文档和目录浏览,IIS 会向浏览器发送“HTTP 404 文件不存在”错误。

    所以请在 IIS 中启用默认文档选项并重置 IIS。

    【讨论】:

      【解决方案4】:

      如果您想使用 index.html 作为默认页面。您需要点击iis默认网站,然后您可以点击默认文档。现在!您可以将索引添加为默认页面。

      【讨论】:

      • 从我在原始问题 中发布的配置示例中可以看出
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-06-02
      • 2015-05-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多