Question

J'ai une application web, qui se fige parfois. Je veux enquêter sur la raison, et je dois obtenir une image mémoire du processus, quand il se bloque.

Alors mon idée est de surveiller le site, quand je détecter le coup, je veux commencer un script .bat qui capture le vidage de la mémoire, puis exécute IISRESET afin de redémarrer pour que le site commencera de répondre à nouveau.

Mon problème est que adplus démarre un autre processus (Cdb.exe) et retourne immédiatement. Je dois attendre Cdb.exe pour terminer, avant que je puisse exécuter 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 devrait pas revenir avant le vidage de la mémoire a été recueillie?

Était-ce utile?

La solution

En ce qui concerne la deuxième partie de votre question, la réponse est oui: vous pouvez aussi bien (1) préciser l'attente sur la ligne commmand (aussi longtemps que vous pouvez accéder à et modifier); et (2) attendre un procédé pour terminer dans un fichier de commandes.

Dans leur forme la plus simple, faire

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

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

Autres conseils

Pour créer le vidage de la mémoire de votre application web, le noreferrer Outils Microsoft Debug diagnostic sont votre meilleure option.

Vous pouvez créer une règle « IIS Raccrocher », suivi d'une URL spécifique et la création d'un vidage de la mémoire à chaque fois que l'absence de réponse dans un nombre spécifié de secondes.

Les diagnostics de débogage Outils ne vous aidera pas à l'égard de redémarrer IIS (ou votre pool d'application), mais en général l'application intégrée piscine options de redémarrage devraient être suffisantes pour cela. Si vous assurez-vous « Activer trackback » est réglé pour votre AppPool (sur son onglet Santé), et vous définissez également les autres paramètres de santé / de recyclage appropriée, votre application devrait continuer à répondre, peu importe ce qui se passe.

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top