Cet article détaille le plan d'actions à mettre en place pour créer une règle dans Debug Diagnostics afin d'automatiser la génération d'un dump au moment du crash d'un processus relatif à IIS (par exemple un processus "W3WP.exe")

Ce plan d'actions est applicable lorsque votre processus "W3WP.exe" plante ce qui, dans le contexte d'IIS, sous entend que le processus est tué ou redémarré. Ceci implique donc un arrêt du processus et s'il est relancé, un changement de PID. Il faut bien faire attention à ne pas confondre Crash et Hang, car configurer une règle en mode Crash pour un Hang ne permettra pas la génération de dumps.

Plan d'actions

                

  • Dans la fenêtre "Select Target Type"
    • Choisissez "All IIS/COM+ related processes", puis cliquez sur "Suivant >"
      • Vous pouvez également sélectionner "A specific process" ou "A specific IIS web application pool" si vous voulez uniquement générer un dump sur le processus correspondant à votre application pool
      • L'inconvénient de "A specific process" est qu'il faut recréer la règle à chaque redémarrage du processus étant donné qu'il va changer de PID

                

  • Pour trouver quel processus correspond à quel application pool
    • Ouvrez une invite de commande (CMD)
    • Allez dans "C:\WINDOWS\System32"
    • Tapez la commande suivante
      • cscript iisapp.vbs

                

  • Ajoutez les breakpoints comme vous pouvez le voir dans le screenshot ci-dessous
    • Ceci permet de générer un dump dès que la commande "ExitProcess" ou "TerminateProcess" est remontée dans un processus sans attendre son arrêt complet

                

  • Cliquez sur "Suivant >"

                

  • Choisissez un nom et emplacement pour les dumps, puis cliquez sur "Suivant >"
    • Mettre ces dumps sur un autre emplacement que le C:\ ne pose pas de problème
    • Vérifiez qu'il y ait suffisamment d'espace disque disponible car la taille d'un dump d'un processus est égale à la taille consommée en mémoire physique par ce dernier

                

  • Dans la fenêtre "Rule Completed", sélectionnez "Activate the rule now", puis cliquez sur "Terminer"
    • La règle est maintenant configurée et prête à générer des dumps

                

  • Vérifiez que son statut est "Active"
    • Si ça n'est pas le cas, le service "DbgSvc" n'est surement pas démarré
    • Allez dans "Outils d'administration > Services" et démarrez le
  • Quand un dump sera généré, vous verrez la colonne "UserDump Count" s'incrémenter

Les dumps sont situés par défaut dans "C:\Program Files\DebugDiag\Logs\Crash rule for all IIS_COM+ related processes" ou dans "C:\Program Files\DebugDiag\Logs\Nom_De_La_Règle "

Pour retourner à l'article Debug Diagnostics & Génération de dumps cliquez ICI

En espérant que cet article vous sera utile.

@ Bientôt

Sylvain Lecerf et L'équipe de support IIS Microsoft France