【问题标题】:Custom error handling for a specific page in ASP.NetASP.Net 中特定页面的自定义错误处理
【发布时间】:2010-10-20 15:23:25
【问题描述】:

在我运行的网站上,我映射了 404 和 500 错误,以重定向到最终用户的自定义错误页面;在我的 web.config 中使用以下代码:

 ...
 ...

 <system.web>
  <customErrors defaultRedirect="/404/default.aspx" mode="RemoteOnly">

     <error statusCode="404" redirect="/404/default.aspx" />

  </customErrors>

  ...
  ...

但是,我不想重定向一个特定页面;一个健康检查页面,以确保网站 100% 正常运行。我尝试使用 web.config 中的以下代码设置特定于位置的自定义错误处理程序:

 ...
 ...

   </system.web>
  <location path="health.aspx">
    <system.web>
      <customErrors defaultRedirect="" mode="RemoteOnly"></customErrors>
    </system.web>
  </location>
 ...
 ...

但是,它似乎不起作用。当我将 health.aspx 重命名为 badhealth.aspx 之类的其他名称,然后发出请求时,我希望通过“黄屏死机”页面收到一般的 404 错误。同样,通过故意更改代码以引发错误,我应该通过 YSOD 页面得到 500 错误。在这两种情况下,我最终都会被重定向到我们的自定义 404 页面,然后得到一个 YSOD。想法?

非常感谢任何帮助。

谢谢大家, - 弗兰克

【问题讨论】:

    标签: asp.net error-handling web-config


    【解决方案1】:

    没关系,我们解决了这个问题。似乎当您有一个特定于位置的 customError 指令时;如果您将 defaultRedirect 保留为“”,它将默认为站点范围的 defaultRedirect URL。

    解决方案只是关闭此特定路径的 CustomError 处理,如下所示:

    <system.web>
        <customErrors defaultRedirect="/404/default.aspx" mode="RemoteOnly">
            <error statusCode="404" redirect="/404/default.aspx" />
        </customErrors>
    </system.web>
    <location path="health.aspx">
        <system.web>
            <customErrors mode="Off"/>
        </system.web>
    </location>
    

    无论如何,谢谢,何塞。

    【讨论】:

    • 你是怎么做到的(禁用特定路径的自定义错误)?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-29
    • 2010-12-07
    • 1970-01-01
    • 2016-04-10
    相关资源
    最近更新 更多