【问题标题】:Why does IIS sometimes displaying the aspx source code for an error page?为什么 IIS 有时会显示错误页面的 aspx 源代码?
【发布时间】:2021-06-15 04:37:42
【问题描述】:

我有一个在 IIS 上托管的 asp.net Web 表单网站。除了错误页面外,一切都按预期工作。我在 web.config 中有如下自定义错误页面设置:

<customErrors mode="On" defaultRedirect="error.aspx">
    <error statusCode="400" redirect="error.aspx" />
    <error statusCode="401" redirect="error.aspx" />
    <error statusCode="403" redirect="error.aspx" />
    <error statusCode="404" redirect="error.aspx" />
    <error statusCode="500" redirect="error.aspx" />
</customErrors>

如果我访问 mysite.com/x.aspx(x.aspx 不存在),它会正确显示错误页面。但是,如果我访问 mysite.com/x(x 不存在),aspx 源代码会显示在浏览器中(以“

关于为什么会发生这种情况以及如何解决的任何想法?

【问题讨论】:

    标签: asp.net iis http-status-code-404


    【解决方案1】:

    ASP.net 没有收到那些“无扩展”请求,而是由静态文件处理程序处理。

    基本上,您需要安装 URLReWrite 模块并将无扩展名的请求重写/重定向到您的 error.aspx 页面。各种examples on SO for handling extensionless URLs

    【讨论】:

      【解决方案2】:

      尝试在您的 web.conifg 文件中使用以下代码:

      <configuration>
         <system.web>
            <customErrors defaultRedirect="error.aspx" mode="RemoteOnly">
               <error statusCode="404" redirect="error.aspx"/>
            </customErrors>
         </system.web>
      </configuration>
      

      确保 IIS 管理器中的错误页面 -> 功能委派设置为读/写。

      【讨论】:

        猜你喜欢
        • 2015-09-13
        • 2023-03-04
        • 2014-10-22
        • 2010-11-03
        • 1970-01-01
        • 2023-03-19
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多