2009-12-29 9 views
18

Je travaille sur une application asp.net .. lorsque j'essaie de compiler et d'exécuter l'application; il fonctionne avec succès.Une exception de première chance de type 'System.Threading.ThreadAbortException' s'est produite dans mscorlib.dll

Mais lorsque je tente de déboguer l'application, il me donne une erreur à tout moment -

Une exception de première chance de type « System.Threading.ThreadAbortException » est produite dans mscorlib.dll

Il n'a pas donné erreur à toute ligne de code spécifique .. il donne cette erreur à tout code de ligne (pas sûr) .. et puis l'affichage de la page web - "Server Application Unavailable" erreur.

Même lorsque je tente d'analyser/exécuter une instruction dans la fenêtre immédiate/montre rapide - il me donne l'erreur ci-dessus ..

par exemple, j'ai chargé un document XML (de plus de 10000 lignes) dans XElement et quand j'essaye de vérifier une valeur d'attribut thru xpath comme XElementObj.XPathSelectElement ("/ asdf/asd/wqer/xyz") .. il donne l'erreur ci-dessus .. (pas tout le temps mais aléatoirement).

toute personne ayant une idée sur ce .. s'il vous plaît aider.

+0

Je ne suis pas sûr que cela ait quelque chose à voir avec une 'exception de première chance' - Une exception de première chance est une exception qui a été interceptée et gérée, maintenant l'intégrité du flux de travail. –

Répondre

32

J'ai eu quelque chose de semblable, et trouvé this answer d'une autre question:

Si vous voulez déterminer où les exceptions se produisent, vous pouvez sélectionner le Debug-> élément de menu Exceptions, et dans la la boîte de dialogue qui apparaît, cochez la première case à cocher "Common Exceptions de la langue d'exécution". Cette fera le débogueur rompre dès que comme exception se produit au lieu de seulement briser des exceptions non gérées.

C'est aussi une raison pour laquelle il est généralement une mauvaise idée de prendre génériques exceptions, sauf si vous êtes clairement connecter les informations pris.

+0

OMG. Combien de fois ai-je oublié cela ... Merci encore de me le rappeler! Je n'aime pas le nouveau "Jetez tout autour" -approche pas vraiment :-) Trop d'exceptions, l'homme ... –

12

j'avais cette exception jeté dans mon application asp.net et trouvé this forum post:

PRB: ThreadAbortException produit si vous utilisez Response.End, Response.Redirect ou Server.Transfer http://support.microsoft.com/default.aspx?scid=kb;en-us;312629

Ce sentiment de faire comme je redirigeant sur une page juste avant quoi que ce soit a été rendu (comportement attendu par la voie)

Solution par MS pour supprimer toutes les exceptions:

Pour contourner ce problème, appliquez une des méthodes suivantes:

  • Pour Response.End, appelez la méthode HttpContext.Current.ApplicationInstance.CompleteRequest au lieu de Response.End pour contourner l'exécution de code à l'événement Application_EndRequest.

  • Pour Response.Redirect, utilisez une surcharge, Response.Redirect (String url, bool endResponse) qui transmet false pour le paramètre endResponse afin de supprimer l'appel interne à Response.End. Par exemple: Response.Redirect ("nextpage.aspx", false);

  • Pour Server.Transfer, utilisez plutôt la méthode Server.Execute.

Si vous utilisez cette solution de contournement, le code qui suit Response.Redirect est exécuté. Pour Server.Transfer, utilisez plutôt la méthode Server.Execute.

Questions connexes