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

har*_*ije 6 asp.net redirect exception custom-errors global-asax

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

<customErrors mode="RemoteOnly" defaultRedirect="GenericError.aspx" />
Run Code Online (Sandbox Code Playgroud)

好的和花花公子...我喜欢那种模式="RemoteOnly"促进发展......

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

Sub Application_Error(ByVal sender As Object, ByVal e As EventArgs)
    Response.Redirect("GenericError.aspx")
End Sub
Run Code Online (Sandbox Code Playgroud)

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

Phi*_*ith 4

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

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