2009-07-28 7 views
2

Ich weiß, dass in ASP.NET Leute in der Regel eine geschützte Methode namens "Application_Error" in ihrer global.asax-Datei setzen, um z. B. logging of exceptions zu behandeln.Sollten Sie die Methode Application_Error in Ihrer global.asax in ASP.NET MVC verwenden?

Meine Frage ist, ist dies eine ASP.NET einzige Sache, oder funktioniert es genauso gut in ASP.NET MVC? Ist es eine ASP.NET MVC Best Practice oder nicht?

+0

Sie können die Application_Error() -Methode verwenden, aber es wird nicht wie erwartet funktionieren. Hier ist eine weitere SO Frage, wo wir das Problem weiter diskutieren: http://praveenbattula.blogspot.com/2009/12/iis-7-managed-pipeline-mode-globalasax.html –

Antwort

5

Sie sollten den Ausnahmefilter verwenden, um Ausnahmen in Ihren Controllern zu behandeln. Dazu fügen Sie der Controller-Aktion das Attribut [HandleError] hinzu. Weitere Informationen finden Sie unter: on the MS MVP MVC Blog

2

Sie können den Application_Error Block aber better yet, use ELMAH verwenden. Es ist ein wunderbares Fehlerprotokollierungswerkzeug (und ich bin irgendwie überrascht, dass es nicht mit ASP.Net/ASP.Net MVC gebündelt wurde).

Wenn Sie es noch nie verwendet haben, fängt es den gelben Bildschirm des Todes und eine ganze Unordnung von Umgebungsvariablen ein, so dass Sie die Fehler, die Sie gefangen haben, überprüfen können.

Außerdem erben alle unsere Controller von einer Controller-Basisklasse, die mit dem [HandleError] -Attribut ausgestattet ist, mit dem Wolfwyrd verknüpft ist, um das Beste aus beiden Welten zu erhalten.

-2

Alles, was in ASP.Net funktioniert, funktioniert in ASP.NET MVC, und ich meine nichts. Einschließlich Ihrer alten ASPX-Seiten mit Code-Behind und Viewstate.

+1

Alles aus ASP.NET ist _supposed_ zu arbeiten in MVC3. Leider ist eines der Dinge, die zwischen den Frameworks nicht das gleiche Verhalten haben, die Methode Application_Error(): http://praveenbattula.blogspot.com/2009/12/iis-7-managed-pipeline-mode-globalasax.html . –

+0

Das ist völlig unwahr und irreführend. Es gibt viele Sachen, die in MVC nicht funktionieren. Ein anderes Beispiel ist Server.Transfer. – Carvellis