Thomas Bandt

Über mich | Kontakt | Archiv

Thread was being aborted.

Merke: Führe niemals ein Response.End(); in einem Try/Catch-Block aus. Ebensowenig sollte man darauf verzichten ein "normales" Response.Redirect()-Statement da zu platzieren, ohne mit dem zweiten Parameter festzulegen, dass Response.End(); nicht aufgerufen werden soll.

Falsch:

try
{
    Response.Redirect("Error.aspx");
}
catch
{
    // Do Something
}

Richtig:

try
{
    Response.Redirect("Error.aspx", false);
}
catch
{
   // Do Something
}

Der Grund:

Die End()-Methode des Response-Objektes, die auch bei einem Redirect per default aufgerufen wird, ruft intern wiederum Thread.Abort auf, was im Ablauf von Try/Catch eine neue Exception auslöst.

Sehr böse und heimtückisch, ich habe gerade eine Stunde danach gesucht.



« Zurück  |  Weiter »