问题
I have custom errors set in the web config file as follows:
<customErrors mode="RemoteOnly" defaultRedirect="GenericError.aspx" />
Fine and dandy... I like that mode="RemoteOnly" facilitates development...
For unhandled exceptions, I have in global.asax:
Sub Application_Error(ByVal sender As Object, ByVal e As EventArgs)
Response.Redirect("GenericError.aspx")
End Sub
However, unhandled exceptions are going to the generic error page instead of the informative yellow screen of death preferred by developers. I can comment out the redirect in global.asax, but then I need to remember to change it for the production environment. Is there a way I can check in Application_Error whether I am remote or not to determine whether to redirect?
回答1:
You do not need the Response.Redirect
in the Global.asax. It duplicates the behaviour of the <customErrors>
tag. RemoteOnly will give end users the custom error message and local usrs the standard asp.net error page. If your developers use a local web server for development you have both in one.
Another approach is to set the <customErrors>
to Off
on development servers and set it to On
in the production environment. There are usually many items in the web.config that need changing so it is no more of a hardship.
回答2:
You shouldn't even need the line in Application_Error if you have the defaultRedirect set in your web.config.
来源:https://stackoverflow.com/questions/3283008/asp-net-customerrors-with-mode-remoteonly-and-global-asax-handling-exceptions