PRB: ThreadAbortException ocorre se você usar Response. end, Response. Redirect ou Server. Transfer

IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática… erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.

312629
Sintomas
Se você usar o Response. end, Response. Redirectou método Server. Transfer , ocorre uma exceção ThreadAbortException . Você pode usar uma instrução try-catch para capturar essa exceção.
Causa
O método Response. end Finaliza a execução da página e desloca a execução para o evento Application_EndRequest no pipeline de evento do aplicativo. A linha de código que segue Response. end não é executada.

Esse problema ocorre nos métodos Response. Redirect e Transfer porque ambos os métodos chamam Response. end internamente.
Resolução
Para contornar esse problema, use um dos seguintes métodos:
  • Para Response. end, chamada de HttpContext.Current.ApplicationInstance.CompleteRequest método em vez de Response. end para ignorar a execução de código para o Application_EndRequest evento.
  • Para Response. Redirect, use uma sobrecarga Response. Redirect (String url, endResponse bool) que passa FALSO para o endResponse parâmetro para suprimir a chamada interna Response. end. Por exemplo:
      Response.Redirect ("nextpage.aspx", false);						
    Se você usar essa solução alternativa, o código que segue Response. Redirect é executado.
  • Para Server. Transfer, use o Server. Execute método em vez disso.
Ponto Da Situação
Esse comportamento é por design.

Aviso: Este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 312629 - Última Revisão: 08/30/2012 22:36:00 - Revisão: 1.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 kbmt KB312629 KbMtpt
Esta informação foi útil?