2009-04-20 50 views
2

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

... 
... 

<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。思考?

任何帮助,非常感谢。

感谢所有, - 弗兰克

回答

1

没关系,我们解决了这个问题。看起来你有一个位置特定的customError指令;如果您将defaultRedirect保留为“”,它将默认为站点范围内的defaultRedirect网址。

的解决方案是简单地关闭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> 

还是要谢谢你,何塞。

+0

你是怎么做到的(禁用特定路径的自定义错误)? – taur 2014-05-16 19:47:50