PRB: ThreadAbortException bei Verwendung von Response.End, Response.Redirect oder Server.Transfer

Problembeschreibung

Verwenden Sie die Response.End, Response.Redirectoder
Methode Server.Transfer tritt eine ThreadAbortException -Ausnahme. Try-Catch -Anweisung können diese Ausnahme abfangen.

Ursache

Die Methode Response.End beendet die seitenausführung und verlagert die Ausführung auf das Ereignis Application_EndRequest in der Ereignispipeline der Anwendung. Die Codezeile, die Response.End folgt wird nicht ausgeführt.

Dieses Problem tritt in der Response.Redirect und Server.Transfer , da beide Methoden Response.End intern aufrufen.

Problemlösung

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

  • Für Response.EndAufrufen der HttpContext.Current.ApplicationInstance.CompleteRequest -Methode Response.End die Ausführung von Code auf das Ereignis Application_EndRequest umgehen.

  • Response.Redirectverwenden Sie eine Überladung Response.Redirect (String Url, Bool EndResponse) , die falsche Parameter EndResponse interner Aufruf von Response.Endzu übergeben. Beispiel:

      Response.Redirect ("nextpage.aspx", false);

    Wenn Sie diese Methode verwenden, wird Response.Redirect der folgende Code ausgeführt.

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

Status

Dieses Verhalten ist entwurfsbedingt.

Benötigen Sie weitere Hilfe?

Ihre Office-Fähigkeiten erweitern
Schulungen erkunden
Neue Funktionen als Erster erhalten
Microsoft Insider beitreten

War diese Information hilfreich?

Vielen Dank für Ihr Feedback!

Vielen Dank für Ihr Feedback. Es klingt, als ob es hilfreich sein könnte, Sie mit einem unserer Office-Supportmitarbeiter zu verbinden.

×