2010-07-19 9 views
5

Ich habe benutzerdefinierte Fehler in der Web-Konfigurationsdatei wie folgt festgelegt:ASP.NET Custom mit mode = Remoteonly und global.asax Behandlung von Ausnahmen

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

schön und gut ... ich mag diesen Modus = "Remoteonly "erleichtert die Entwicklung ...

Für nicht behandelte Ausnahmen, ich habe in global.asax:

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

jedoch nicht behandelte Ausnahmen von der allgemeinen Fehlerseite anstelle der informativen gelb s gehen Creen of Death von Entwicklern bevorzugt. Ich kann die Umleitung in global.asax auskommentieren, aber dann muss ich daran denken, sie für die Produktionsumgebung zu ändern. Gibt es eine Möglichkeit, in Application_Error nachzufragen, ob ich remote bin oder nicht, um zu bestimmen, ob ich umleiten soll?

Antwort

3

Sie brauchen nicht die Response.Redirect in der Global.asax. Es dupliziert das Verhalten des Tags <customErrors>. RemoteOnly gibt Endbenutzern die benutzerdefinierte Fehlermeldung und lokale usr die Standard asp.net Fehlerseite. Wenn Ihre Entwickler einen lokalen Webserver zur Entwicklung verwenden, haben Sie beides in einem.

Ein anderer Ansatz besteht darin, die <customErrors> auf Entwicklungsservern auf Off zu setzen und in der Produktionsumgebung auf On zu setzen. Es gibt normalerweise viele Elemente in der web.config, die geändert werden müssen, so dass es keine Schwierigkeiten mehr sind.

+0

Sie haben Recht, ich muss ein Gehirn Furz für nicht verstehen! – harrije

0

Sie sollten die Zeile in Application_Error nicht einmal benötigen, wenn Sie in Ihrer web.config den defaultRedirect-Wert festgelegt haben.