【问题标题】:IIS cannot serve pages ending with .configIIS 无法提供以 .config 结尾的页面
【发布时间】:2011-02-28 16:37:47
【问题描述】:

这显然是一个安全问题,可能不想更改它,但最好能处理该错误。有什么想法吗?

我看到 stackoverflow 也不能幸免:

https://stackoverflow.com/questions/tagged/web.config

他们似乎已将标签更改为 web-config 以解决问题,但是当您搜索 [web.config] 时仍然会收到非常讨厌的错误消息

【问题讨论】:

    标签: asp.net-mvc iis url error-handling


    【解决方案1】:

    我相信这已经在 ASP.NET 4 中通过添加新的 web.config 设置得到解决

    <configuration>
      <system.web>
        <httpRuntime relaxedUrlToFileSystemMapping="true"/>
      </system.web>
    </configuration>
    

    Phil Haack 有更多详细信息。

    【讨论】:

    • 其实这行不通。根据文章,“请注意,您仍然无法请求 /web.config,因为这会尝试在您的 Web 应用程序的根目录中请求 web.config,而 ASP.NET 有充分的理由不允许这样做!”
    • @Keltex 正确,如文章中所述,由于显而易见的原因,它不适用于根 web.config 文件,但它适用于包含匹配路由的“web.config”的 URL,例如问题示例stackoverflow.com/questions/tagged/web.config
    【解决方案2】:

    在 IIS 7 中,这可以在 Request Filtering 下找到。默认过滤的其他扩展包括:

    • .asax
    • .ascx
    • .master
    • .cs
    • .csproj

    等等

    顺便说一句,这不是一个错误,因为请求在 ASP.NET 有机会处理它之前就被过滤了。换句话说,如果您愿意,您可以删除请求过滤器并让 IIS 处理扩展名,但请确保扩展名由 ASP.NET 而不是静态文件处理程序处理。

    编辑:也许 SO 的答案是更改它,以便当标签具有 .XXX 扩展名(如 web.config)时,它们会更改为 web-config 或 IIS 没有的其他内容筛选。这可能也是https://meta.stackoverflow.com/ 上的一个好话题

    【讨论】:

    • 虽然没有错误,例如.cs 但对于 SO 上的 .config。
    • @0xA3 - 如果您输入这样的网址:stackoverflow.com/questions/tagged/web.cs(或使用上述任何扩展名),您会收到相同的错误。恰好 web.config 是一个流行的标签。
    • 我实际上没有得到同样的错误。对于 .cs 和 .vb 我只是得到一个空白页,对于 .config 我得到一个 XML 解析错误。
    猜你喜欢
    • 2014-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-03
    • 2016-11-20
    • 1970-01-01
    • 2013-11-24
    相关资源
    最近更新 更多