Application_Error () wird nicht ausgelöst

8

Ich versuche, eine ASP.NET-Anwendung auszuführen, die Ausnahmen für die Datenbank protokolliert. Ich verwende Application_Error, um die Ausnahme abzufangen.

Vor dem Hinzufügen der Verbindungszeichenfolge, nur um meinen Code (Logger-Klasse und den Code in Global.asax) zu testen, habe ich versucht, den Fehler in Windows-Ereignisanzeige zu protokollieren. Dies funktioniert wie erwartet.

Nach dem Hinzufügen der Verbindungszeichenfolge zur Datei "Web.config" und dem Hinzufügen des ADO.NET-Codes habe ich jedoch versucht, die Anwendung auszuführen. Aber ich bekomme den gelben Bildschirm des Todes: D

Ich weiß nicht, was mit meinem Code falsch ist. Ich habe nur das Element connectionStrings in der Datei Web.config geändert und den ADO.NET-Code hinzugefügt.

Hier ist der Code.

Dies ist der Webformularcode im Page_Load-Ereignis. Die Datei Countries.xml ist nicht vorhanden und es wird erwartet, dass ein Fehler ausgelöst wird.

%Vor%

Anwendungsfehler

%Vor%

Web.config

%Vor%

Ich habe das Debuggen versucht, indem ich einen Breakpoint bei der Application_Error-Methode in Global.asax platziert habe, aber das Steuerelement erreicht diesen Punkt nie. Die Ausnahme wird vom Page_Load-Ereignis ausgelöst. Es gibt keine Kompilierungsfehler im Logger-Klassencode. Außerdem möchte ich die customErrors-Route nicht verwenden, um dieses Problem zu lösen.

Vielen Dank im Voraus.

Dies ist der Link zum Code: Ссылка

    
Nachiket 10.07.2016, 21:19
quelle

2 Antworten

1

Wenn Sie <customErrors mode="Off" /> während debuggen haben, erreicht der Code nicht Application_Error event, da die Exception sofort im Browser angezeigt wird.

Wenn Sie während des Debuggens Application_Error erreichen möchten, müssen Sie den benutzerdefinierten Fehler aktivieren -

%Vor%     
Win 11.07.2016 23:54
quelle
0

Haben Sie benutzerdefinierte Fehler in der Datei web.config aktiviert?

%Vor%

Beachten Sie, dass der Umleitungsmodus 'ResponseRewrite' ist, um die Server.GetLastError() -Ausnahme beizubehalten. Wenn Sie dies anders festlegen, gibt Server.GetLastError() null zurück.

Die Implementierung von Application_Error sollte einfach sein ... in Global.asax

%Vor%

UPDATE:

Ein möglicher Täter wäre das HandlerErrorAttribute, das als Filter für Global.asax registriert ist.

%Vor%

Einfach auskommentieren oder entfernen Sie die Zeile und stellen Sie sicher, dass Sie die customErrors in der system.web unter web.config implementiert haben.

Ich bin nicht so vertraut mit dem HandleErrorAttribute, wenn dies Ihr Problem behebt, dann könnte es auch die Dokumentation nachschlagen.

    
John Ephraim Tugado 11.07.2016 03:38
quelle

Tags und Links