ThreadAbortException se produce si usa Response.End, Response.Redirect o Server.Transfer.
Este artículo le ayuda a resolver el error ThreadAbortException que se produce si usa Response.End
, Response.Redirect
o Server.Transfer
.
Versión original del producto: ASP.NET en .NET Framework 4.5.2, ASP.NET en .NET Framework 3.5 Service Pack 1
Número de KB original: 312629
Síntomas
Si usa el Response.End
método , Response.Redirect
o Server.Transfer
, se produce una excepción ThreadAbortException. Puede usar una try-catch
instrucción para detectar esta excepción.
Causa
El Response.End
método finaliza la ejecución de la página y desplaza la ejecución al evento Application_EndRequest de la canalización de eventos de la aplicación. No se ejecuta la línea de código siguiente Response.End
.
Este problema se produce en los Response.Redirect
métodos y Server.Transfer
porque ambos métodos llaman a Response.End internamente.
Solución
Para solucionar este problema, use uno de los métodos siguientes:
Para
Response.End
, llame alHttpContext.Current.ApplicationInstance.CompleteRequest
método en lugar de para omitir la ejecución delResponse.End
código alApplication_EndRequest
evento .Para
Response.Redirect
, use una sobrecarga, Response.Redirect(String url, bool endResponse) que pase false para que el parámetro endResponse suprima la llamada interna aResponse.End
. Por ejemplo:Response.Redirect ("nextpage.aspx", false);
Si usa esta solución alternativa, se ejecuta el código siguiente
Response.Redirect
.Para
Server.Transfer
, use elServer.Execute
método en su lugar.
Aunque ASP.NET controla esta excepción, puede usar la try-catch
instrucción para detectar esta excepción. Por ejemplo:
try
{
Response.Redirect("nextpage.aspx");
}
catch (Exception ex)
{
Response.Write (ex.Message);
}
Agregue un punto de interrupción en la Response.Write
línea y observe que se alcanza este punto de interrupción. Al examinar la excepción, observe que se produce la excepción ThreadAbortException.
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de