Momentan sunteți offline, așteptați să vă reconectați la internet

PRB: ThreadAbortException apare dacă utilizaţi Response.End, Response.Redirect sau Server.Transfer

Simptome
Dacă utilizaţi metoda Response.End, Response.Redirect sau Server.Transfer, apare o excepţie ThreadAbortException. Puteţi utiliza o instrucţiune try-catch pentru a prinde această excepţie.
Cauză
Metoda Response.End termină executarea paginii şi trece la executarea evenimentului Application_EndRequest în fluxul de evenimente ale aplicaţiei. Linie de cod care urmează după Response.End nu se execută.

Această problemă apare la metodele Response.Redirect şi Server.Transfer, deoarece ambele metode apelează la Response.End pe plan intern.
Rezoluţie
Pentru a soluţiona această problemă, utilizaţi una dintre următoarele metode:
  • Pentru Response.End, apelaţi metoda HttpContext.Current.ApplicationInstance.CompleteRequest în loc de Response.End pentru a omite executarea codului pentru evenimentul Application_EndRequest.
  • Pentru Response.Redirect, utilizaţi o suprasarcină, Response.Redirect(String url, bool endResponse) care trece drept falsă pentru parametrul endResponse pentru a suprima apelarea internă pentru Response.End. De exemplu:
      Response.Redirect ("nextpage.aspx", false);						
    Dacă utilizaţi această soluţie, codul care urmează după Response.Redirect se execută.
  • Pentru Server.Transfer, utilizaţi în schimb metoda Server.Execute.
Stare
Acest comportament este cel proiectat.
Proprietăți

ID articol: 312629 - Ultima examinare: 08/30/2013 13:37:00 - Revizie: 2.0

Microsoft ASP.NET 4.5, Microsoft ASP.NET 4.0, Microsoft ASP.NET 3.5, Microsoft ASP.NET 2.0, Microsoft ASP.NET 1.1, Microsoft ASP.NET 1.0

  • kbexcepthandling kbprb KB312629
Feedback