2009-12-29 12 views
18

Ich arbeite an einer asp.net-Anwendung .. wenn ich versuche, die Anwendung zu kompilieren und auszuführen; Es läuft erfolgreich.Eine erste Chance Ausnahme des Typs 'System.Threading.ThreadAbortException' aufgetreten in mscorlib.dll

Aber wenn ich versuche, die Anwendung zu debuggen es gibt mir Fehler an jedem Punkt -

Eine erste Chance Ausnahme des Typs ‚System.Threading.ThreadAbortException‘ in mscorlib.dll aufgetreten

Es Fehler geben tut bei jeder bestimmten Codezeile .. es gibt diesen Fehler bei jedem Code der Zeile (nicht sicher) .. und dann Webseite anzeigen - "Server Application nicht verfügbar" Fehler.

Auch wenn ich versuche, eine Aussage in unmittelbaren Fenstern/quick Uhr zu analysieren/execute - es mir über Fehler gibt ..

ich zum Beispiel ein XML-Dokument geladen (von mehr als 10000 Zeilen) in XElement und wenn ich versuche, einen Attributwert durch Xpath als XElementObj.XPathSelectElement ("/ asdf/asd/wqer/xyz") zu überprüfen .. gibt es einen über dem Fehler .. (nicht die ganze Zeit, aber zufällig).

jemand, der eine Idee auf diesem .. bitte helfen.

+0

Ich bin mir nicht sicher, dass dies etwas mit einer 'First-Chance-Ausnahme' zu tun hat - Eine Ausnahme der ersten Chance ist eine Ausnahme, die abgefangen und behandelt wurde und die Integrität des Workflows aufrechterhält. –

Antwort

32

hatte ich etwas Ähnliches, und fand this answer aus einer anderen Frage:

Wenn Sie, wo die Ausnahmen auftreten lokalisieren möchten, können Sie wählen Sie das Debug-> Ausnahmen Menü Artikel, und in der Dialog, der erscheint, das erste Kontrollkästchen für "Common Language Runtime Ausnahmen" aktivieren. Diese wird den Debugger brechen, sobald als Ausnahme auftritt statt nur Bruch auf unbehandelten Ausnahmen.

Dies ist auch ein Grund, warum es ist generell eine schlechte Idee generic Ausnahmen zu fangen, wenn Sie klar sind gefangen, die Informationen anzumelden.

+0

OMG. Wie oft habe ich das vergessen ... Nochmals vielen Dank für die Erinnerung! Ich mag nicht das neue "Throw everything around" -Anwendung nicht wirklich :-) Zu viele Ausnahmen, Mann ... –

12

ich diese Ausnahme in meiner asp.net app geworfen hatte, und fand this forum post:

PRB: Threadabort tritt auf, wenn Sie Response.End verwenden, Response.Redirect oder Server.Transfer http://support.microsoft.com/default.aspx?scid=kb;en-us;312629

Dieser Sinn, als ich auf einer Seite rechts wurde umgeleitet, bevor etwas gemacht wurde (erwartetes Verhalten durch die Art und Weise)

Umgehung von MS alle Ausnahmen zu unterdrücken:

, um dieses Problem zu umgehen, verwenden Sie eine der folgenden Methoden:

  • Für Response.End, rufen Sie die HttpContext.Current.ApplicationInstance.CompleteRequest Methode statt Response.End, um die Codeausführung für das Application_EndRequest-Ereignis zu umgehen.

  • Verwenden Sie für Response.Redirect eine Überladung, Response.Umleitung (String url, bool endResponse), die false für den endResponse-Parameter übergibt, um den internen Aufruf von Response.End zu unterdrücken. Beispiel: Response.Redirect ("nextpage.aspx", false);

  • Verwenden Sie für Server.Transfer stattdessen die Server.Execute-Methode.

Wenn Sie diese Problemumgehung verwenden, wird der Code, der Response.Redirect folgt, ausgeführt. Verwenden Sie für Server.Transfer stattdessen die Server.Execute-Methode.

Verwandte Themen