Behandeln von Ausnahmen in global.asax ASP.NET MVC

8

Ich habe Code, der alle Ausnahmen in Global.asax abfängt

%Vor%

Wie kann ich den Namen des Controllers erhalten, wo dieser Fehler aufgetreten ist?

Wie kann ich Request Client IP bekommen?

Und kann ich Ausnahmen filtern? Ich brauche nicht 404, 504 .... erors

Danke

    
Irakli Lekishvili 26.09.2012, 06:30
quelle

3 Antworten

6

Global.asax hat keine Ahnung von Controllern und Aktionen, daher glaube ich, dass es keine API zum Abrufen von Controller- und Aktionsnamen gibt. Sie können jedoch versuchen, die Anfrage URL zu lösen:

%Vor%

Um die Benutzer-IP zu erhalten, können Sie UserHostAddress property:

verwenden %Vor%

Um HTTP-Ausnahmen herauszufiltern, die Sie nicht behandeln werden, können Sie Folgendes verwenden:

%Vor%

Eine letzte Bemerkung zur Ausnahmebehandlung - es ist keine bewährte Vorgehensweise, dies auf globaler Ebene zu tun, wenn es eine Möglichkeit gibt, es lokal auszuführen. Zum Beispiel in ASP.NET MVC Basis Controller Klasse hat eine Methode:

%Vor%

, das Ihnen beim Überschreiben die volle Kontrolle über die aufgetretene Ausnahme gibt. Sie können alle Informationen, die für Sie verfügbar sind, in Global.asax plus ASP.NET MVC-spezifischen Funktionen wie einer Referenz zu Controller, Ansichtskontext, Routendaten usw. finden.

    
Andrei 26.09.2012, 07:15
quelle
3

Ich habe es so benutzt, es ist unter

Sie können Benutzer-IP wie folgt erhalten

%Vor%

und Sie können Ihre URL erhalten, wo dieser Fehler so passiert ist

%Vor%

Ich denke, das wird dir helfen ...

    
Rajpurohit 26.09.2012 06:51
quelle
0

Ich würde einen anderen Weg nehmen und ein Attribut auf Ihren Controllern (oder dem Basis-Controller, falls Sie einen haben) verwenden.

%Vor%     
dove 26.09.2012 07:42
quelle