2009-05-08 19 views
1

Voir http://support.microsoft.com/kb/312629/EN-US/Server.Transfer et System.Threading.ThreadAbortException

J'utilise reponse.direct dans mon application aussi bien et je ne reçois pas l'exception. La solution de contournement que l'article de base de connaissances suggère (Server.Execute) ne fonctionne pas pour moi. Je reçois beaucoup d'exceptions javascript de la boîte à outils Ajax sur la page cible si j'utilise Server.Execute, et je n'ai pas creusé dans la cause.

Ma question - quels arguments voyez-vous pour ne pas avaler l'exception en tant que «limitation connue» et passer à autre chose?

La raison de l'utilisation de Server.Transfer dans ce cas très spécifique est que je veux masquer l'URL cible (réelle) de la page en cours d'exécution. Cela fonctionne plutôt bien, sauf pour cette exception (que l'utilisateur ne voit jamais).

Répondre

5

Assurez-vous de ne pas appeler Server.Transfer() dans un gestionnaire d'exceptions (try..catch/finally).

Edit:

Server.Transfer soulève toujours ThreadAbortException à la fin. Si vous l'intégrez dans un gestionnaire d'exceptions, vous devez intercepter les types d'exception explicites au lieu de simplement "Exception".

Consultez l'aide de Server.Transfer sur MSDN. Voici des informations sur ThreadAbortException

+0

Pourquoi pas? Si je ne l'attrape pas dans la page d'origine, l'exception survit à l'appel. – cdonner

+0

Voir la mise à jour de la réponse. –