ASP.Net中特定页面的自定义错误处理

Fra*_*rio 4 asp.net error-handling web-config

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

 ...
 ...

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

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

  </customErrors>

  ...
  ...
Run Code Online (Sandbox Code Playgroud)

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

 ...
 ...

   </system.web>
  <location path="health.aspx">
    <system.web>
      <customErrors defaultRedirect="" mode="RemoteOnly"></customErrors>
    </system.web>
  </location>
 ...
 ...
Run Code Online (Sandbox Code Playgroud)

但是,它似乎不起作用.当我将health.aspx重命名为badhealth.aspx等其他内容时,请发出请求,我希望通过黄屏死机页面获得通用的404错误.同样,通过故意更改代码以引发错误,我应该通过YSOD页面获得500错误.在这两种情况下,我最终被重定向到我们的自定义404页面,然后获得YSOD.思考?

非常感谢任何帮助.

谢谢大家, - 弗兰克

Fra*_*rio 7

没关系,我们解决了这个问题.看来当你有一个特定于位置的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>
Run Code Online (Sandbox Code Playgroud)

不管怎样,谢谢,何塞.