L'outil auquel je me tourne toujours dans cette situation est WinDBG. Télécharger le 32bit version ou le 64bit version, en fonction de la bonté du processus.
Pour une raison boiteuse, la dernière version ne dispose pas d'un lien de téléchargement direct (uniquement disponible dans le SDK), alors passez à la section «Version précédente» et prenez la dernière version.
charge WinDBG après l'installation et procédez comme suit:
- Fichier -> attach à un processus (F6)
- Sélectionnez le processus cible, puis cliquez sur 'Ouvrir'
- Dans la console entrez les informations suivantes :
.loadby sos mscorwks
(cela charge les extensions de débogueur .NET)
sxe clr
(dit le débogueur b Reak sur les exceptions gérées)
g
(GO!)
- Exécutez le processus jusqu'à ce que l'exception se produit.
- Le débogueur va se casser, à ce moment, entrez
!pe
pour voir les détails de l'exception.
La commande !clrstack
est utile pour afficher la pile gérée ou essayez !dumpstack
pour inclure les appels natifs.
Si le débogueur s'arrête sur une exception dont vous n'avez pas besoin, appuyez à nouveau sur 'g' jusqu'à ce que vous obteniez celui que vous voulez voir.
La commande !help
affichera toutes les extensions .NET disponibles et, si vous souhaitez approfondir, je recommande fortement Tess Ferrandez's blog.
FYI ... Certaines méthodes normales (telles que Response.End) lancent des exceptions afin qu'un nombre d'exceptions incrémentielles dans perfmon ne soit pas toujours mauvais. – David
Je ne comprends pas votre point .. Je suis d'accord que ce n'est pas mauvais. Je ai juste besoin de savoir ce que c'est et le pousser dans le visage des devs de l'API, car ils ne sont pas utiles. Et cette exception rend toute l'application que j'ai passé 5 semaines de mylife inutile ..... erm .. expliqué? –