2009-12-27 3 views
1

J'ai une application web, qui se bloque parfois. Je veux enquêter sur la raison, et j'ai besoin d'obtenir un vidage de la mémoire du processus, quand il se bloque. Donc, mon idée est de surveiller le site, quand je détecte le blocage, je veux démarrer un script .bat qui capture le vidage de la mémoire, puis exécute IISRESET afin de redémarrer afin que le site va commencer à répondre à nouveau.Capture dump avec adplus.vbs - Attendre que le débogueur soit terminé?

Mon problème est que adplus démarre un autre processus (cdb.exe) et renvoie immédiatement. Je dois attendre la fin de cdb.exe avant de pouvoir lancer IISRESET. Est-il possible de le faire dans un script batch? Ou, puis-je spécifier sur la ligne de commande adplus, qu'il ne doit pas retourner jusqu'à ce que le vidage de la mémoire a été collecté?

Répondre

2

En ce qui concerne la deuxième partie de votre question, la réponse est oui: vous pouvez à la fois (1) spécifier l'attente sur la ligne de communication (tant que vous pouvez y accéder et la modifier); et (2) attendre qu'un processus se termine dans un fichier batch.

Dans leur forme la plus simple, faire

(1) utiliser START /WAIT cdb parms au lieu de simplement cdb parms

(2) et essayer FOR /F "tokens=1,2" %a in ('TASKLIST ^| FIND /I "cdb.exe"') DO @ECHO %a %b remplacer ECHO pour la commande que vous voulez.

2

Pour créer l'image mémoire de votre application Web, les Microsoft Debug Diagnostic Tools sont votre meilleure option.

Vous pouvez créer une règle "blocage d'IIS", en surveillant une URL spécifique et en créant un vidage de mémoire chaque fois qu'aucune réponse n'est reçue dans un nombre de secondes spécifié. Les outils de diagnostic de débogage ne vous aideront pas à redémarrer IIS (ou votre pool d'applications), mais en général, les options de redémarrage du pool d'applications intégrées doivent être suffisantes pour cela. Si vous vous assurez que "Activer Ping" est défini pour votre AppPool (sur son onglet "Santé"), et que vous définissez également les autres paramètres Santé/Recyclage de manière appropriée, votre application doit continuer à répondre, quoi qu'il arrive.

Dans le cas contraire, le suivi du dossier de sortie avec dumps de votre « IIS Raccrocher » règle de DebugDiag et redémarrer IIS chaque fois que de nouveaux fichiers apparaissent devrait certainement faire l'affaire ...

Questions connexes