ASP.NET customErrors with mode = remoteOnly和global.asax处理异常

时间:2010-07-19 16:37:32

标签: asp.net redirect exception custom-errors global-asax

我在网络配置文件中设置了自定义错误,如下所示:

<customErrors mode="RemoteOnly" defaultRedirect="GenericError.aspx" />

很好和花花公子...我喜欢那种模式=“RemoteOnly”促进发展......

对于未处理的异常,我在global.asax:

Sub Application_Error(ByVal sender As Object, ByVal e As EventArgs)
    Response.Redirect("GenericError.aspx")
End Sub

然而,未处理的异常将转到通用错误页面,而不是开发人员首选的信息黄色死亡屏幕。我可以在global.asax中注释掉重定向,但是我需要记住为生产环境更改它。有没有办法可以检查Application_Error我是否是远程的,以确定是否重定向?

2 个答案:

答案 0 :(得分:4)

您不需要Global.asax中的Response.Redirect。它复制了<customErrors>标记的行为。 RemoteOnly将为最终用户提供自定义错误消息,本地用户将使用标准的asp.net错误页面。如果您的开发人员使用本地Web服务器进行开发,那么您可以同时使用它

另一种方法是在开发服务器上将<customErrors>设置为Off,并在生产环境中将其设置为On。 web.config中通常有许多项需要更改,因此不再是困难。

答案 1 :(得分:0)

如果在web.config中设置了defaultRedirect,则甚至不需要Application_Error中的行。