2010-11-09 28 views
2

Récemment, nous avons rencontré des problèmes intermittents étranges dans notre application ASP.NET. Ces questions comprennent:Hang-Ups intermittents courants ASP.NET

  • Variables statiques devenant non initialisé
  • fils de fond avortent
  • (InProc) état de session étant perdu

La chose étrange est, ces problèmes ont eu lieu environ toutes les 30 heures. "Bizarre", nous avons pensé ...

Eh bien, je suis sûr que certains d'entre vous pensent, "Cela ressemble à une propriété de recyclage App Pool pour moi." Tu as raison. Notre pool d'applications a été paramétré sur la valeur par défaut de 1740 minutes avant de se recycler automatiquement, entraînant la perte de l'état, de la statique, etc.

Donc, mon point est le suivant: il y a des choses dans IIS, ASP.NET, quoi que peut provoquer des blocages intermittents. Quelles sont les choses que vous avez rencontrées?

Pour commencer,

Modification d'un fichier web.config peut provoquer l'application à redémarrer ce qui entraînera toutes les sessions à la fin (lorsque vous utilisez le mode InProc).

Merci beaucoup,

+0

Nous avons déjà rencontré des problèmes de blocage intermittent en raison de connexions de base de données mal codées dans les applications ASP et ASP.NET et de leur élimination incorrecte. Il était notoirement difficile de suivre certains d'entre eux cependant ... – dooburt

Répondre

0

Juste pour le dépannage de la session, celui-ci devrait suffire ... http://aspalliance.com/1182

Hangs d'autre part peuvent se produire en raison de nombreuses autres raisons. Le meilleur moyen de résoudre ces problèmes consiste à utiliser n'importe quel outil comme Windbg ou Debug Diagnostics pour créer des vidages lorsque le problème se produit et créer des vidages mémoire. Plus tard ces décharges de mémoire peuvent être analysées pour des problèmes.

http://blogs.msdn.com/tess a beaucoup de messages sur le débogage de divers scénarios.

2

Vous pouvez également envisager la possibilité que le processus w3wp.exe exécuté par asp.net se bloque en raison d'une exception non gérée liée à l'infrastructure. Si cela fait partie du problème, vous trouverez des entrées dans le journal des événements du système et de l'application sur le serveur coupable qui indiquent spécifiquement qu'un traitement w3wp.exe est arrêté. Le problème est qu'il ne vous dira pas pourquoi. Il enregistrera seulement que quelque chose l'a fait cesser de fonctionner. Pour résoudre les problèmes, vous pouvez commencer par découpler votre session du processus w3wp.exe en modifiant InProc sur un serveur d'état (local ou sql). La session ne sera plus perdue si ce processus plante, mais il sera restauré en mémoire à la première occasion. Vous pouvez également modifier les paramètres de votre pool d'applications pour les recycler à un taux différent. Si w3wp.exe plante, vous devrez probablement recycler beaucoup plus rapidement et supprimer "Activer la protection contre les pannes".

Tout cela ne fait que masquer le problème. Afin d'isoler un problème de cette nature, vous devrez installer et exécuter le IIS Debug Diagnostic Tool. Ses rapports crash/hang sont très informatifs, et absolument cruciaux pour trouver les problèmes qui se produisent dans l'espace trouble entre Asp.Net et IIS.