Thread a été interrompue
Je suis en utilisant Serveur.Transfert. Tout fonctionne bien, mais à l'exception du journal montre exception suivante.
System.Threading.ThreadAbortException: Thread was being aborted.
at System.Threading.Thread.AbortInternal()
at System.Threading.Thread.Abort(Object stateInfo)
at System.Web.HttpResponse.End()
at System.Web.HttpServerUtility.Transfer(String path, Boolean preserveForm)
at System.Web.HttpServerUtility.Transfer(String path)
Une idée pour éviter d'exception ci-dessus.
Vous devez vous connecter pour publier un commentaire.
Cette exception est de jeter par l'appel à
Server.Transfer
afin de stopper l'exécution de la méthode est exactement la même chose obtient jeté si vous neResponse.Redirect
.Les deux choix sont:
ThreadAbortException /reprocéder l'
Server.Transfer
seulement
Server.Transfer
dans les lieuxoù il ne sera pas pris (recommandé)
EDIT: Scratch, http://support.microsoft.com/kb/312629 a un couple de d'autres suggestions pour essayer, mais je continue de recommander #2 ci-dessus.
Une autre façon de résoudre ce problème, est d'attraper l'généré l'erreur et à ne pas renvoyer c':
Caling Serveur.Transfert d'appel Réponse.Fin qui jette toujours un ThreadAbortException. C'est un "spécial" exception car il peut être pris dans un bloc catch, il sera toujours re jetés à la fin du bloc catch. Je voudrais avoir votre journalisation des erreurs de l'ignorer ThreadAbortExceptions.
Ce problème se produit dans la Réponse.Rediriger l'utilisateur et le Serveur.Méthodes de transfert parce que les deux méthodes de Réponse à un appel.Fin à l'interne.
Solution à ce Problème est comme suit.
Pour Le Serveur.Le transfert, l'utilisation du Serveur.Méthode Execute à la place.
Visitez ce lien pour télécharger l'exemple d'échantillon. http://jayeshsorathia.blogspot.com/2012/03/thread-was-being-aborted-error-occured.html
Remplacement De Réponse.Fin() par la suite aidé à résoudre le problème.
Réponse.Flush();
Réponse.Close();
Reportez-vous Peut-on utiliser la Réponse.Flush () au lieu de la Réponse.Fin()
Remplacer
Response.End()
AvecHttpContext.Current.ApplicationInstance.CompleteRequest();