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

Traduções de Artigos Traduções de Artigos
Artigo: 312629 - Ver produtos para os quais este artigo se aplica.
Expandir tudo | Reduzir tudo

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.

Propriedades

Artigo: 312629 - Última revisão: 30 de agosto de 2012 - Revisão: 1.0
A informação contida neste artigo aplica-se a:
  • 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
Palavras-chave: 
kbexcepthandling kbprb kbmt KB312629 KbMtpt
Tradução automática
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.
Clique aqui para ver a versão em Inglês deste artigo: 312629

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com