ThreadAbortException tritt auf, wenn Sie Response.End, Response.Redirect oder Server.Transfer verwenden.
Dieser Artikel hilft Ihnen beim Beheben des ThreadAbortException-Fehlers, der auftritt, wenn Sie , Response.Redirect
oder Server.Transfer
verwendenResponse.End
.
Ursprüngliche Produktversion: ASP.NET am .NET Framework 4.5.2, ASP.NET auf .NET Framework 3.5 Service Pack 1
Ursprüngliche KB-Nummer: 312629
Symptome
Wenn Sie die Response.End
Methode , Response.Redirect
oder Server.Transfer
verwenden, tritt eine ThreadAbortException-Ausnahme auf. Sie können eine try-catch
-Anweisung verwenden, um diese Ausnahme abzufangen.
Ursache
Die Response.End
-Methode beendet die Seitenausführung und verschiebt die Ausführung in das Application_EndRequest-Ereignis in der Ereignispipeline der Anwendung. Die folgende Response.End
Codezeile wird nicht ausgeführt.
Dieses Problem tritt in den Response.Redirect
Methoden und Server.Transfer
auf, da beide Methoden Response.End intern aufrufen.
Lösung
Verwenden Sie eine der folgenden Methoden, um dieses Problem zu umgehen:
Rufen
Response.End
Sie für dieHttpContext.Current.ApplicationInstance.CompleteRequest
-Methode anstelle vonResponse.End
auf, um die Codeausführung für dasApplication_EndRequest
-Ereignis zu umgehen.Verwenden Sie für
Response.Redirect
die Überladung Response.Redirect(String url, bool endResponse), die false für den endResponse-Parameter übergibt, um den internen Aufruf von zuResponse.End
unterdrücken. Zum Beispiel:Response.Redirect ("nextpage.aspx", false);
Wenn Sie diese Problemumgehung verwenden, wird der folgende
Response.Redirect
Code ausgeführt.Server.Transfer
Verwenden Sie für stattdessen dieServer.Execute
-Methode.
Obwohl ASP.NET diese Ausnahme behandelt, können Sie die try-catch
-Anweisung verwenden, um diese Ausnahme abzufangen. Zum Beispiel:
try
{
Response.Redirect("nextpage.aspx");
}
catch (Exception ex)
{
Response.Write (ex.Message);
}
Fügen Sie der Response.Write
Zeile einen Haltepunkt hinzu, und beachten Sie, dass dieser Haltepunkt erreicht wird. Wenn Sie die Ausnahme untersuchen, beachten Sie, dass die ThreadAbortException-Ausnahme auftritt.
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für