Debug -> Attach to Process dans le menu VS.
Afin de savoir à quel processus w3wp.exe se rattacher, vous pouvez utiliser la commande suivante sur un serveur 2008
c:\%systemroot%\system32\inetsrv\appcmd list wp
Alors que sous Windows 2003, c'est
c:\%systemroot%\system32\cscript iisapp.vbs
Pour plus d'informations, voir PID du pool d'applications IIS .
Cependant, si vous avez accès au gestionnaire des tâches (taskmgr.exe), vous pouvez y voir directement le nom du processus ainsi que l'ID du processus, et dans la plupart des cas, la colonne "nom d'utilisateur" du processus sera la même que le nom du pool d'applications (bien sûr, vous devez configurer ces colonnes pour qu'elles soient visibles dans le gestionnaire des tâches afin d'afficher les informations).
Mais notez que toutes les méthodes n'affichent que les processus en cours d'exécution, ce qui signifie que si votre processus particulier s'est arrêté en raison d'un temps d'inactivité, vous devez d'abord utiliser le site afin de faire remonter le processus dans la liste.
De plus, si l'application est un "Web Garden" (qui a plus d'un w3wp.exe), même après avoir attaché le processus correct, il n'y a toujours aucune garantie que les points d'arrêt seront atteints, puisque le trafic vers le site peut être dirigé vers un autre processus.
Notez également que si vous vous attachez à une application qui s'exécute en mode "release", elle s'exécutera désormais en mode "debug", ce qui signifie par exemple qu'il n'y aura pas de limitation de temps (ce qui peut poser problème si vous essayez de résoudre une erreur de temps).
Si vous voulez vous attacher à un processus distant, voici la meilleure pratique :
-
Assurez-vous que le pare-feu ne bloque pas en ouvrant les ports appropriés ou en le désactivant complètement (n'oubliez pas de le réactiver lorsque vous avez terminé).
-
Vous devez avoir un compte de domaine Windows avec des privilèges administratifs sur la machine distante ou avoir un compte - avec le même nom d'utilisateur et mot de passe que la machine locale qui exécute VS - sur la machine distante.
-
Sur la machine où VS est installé, naviguez jusqu'à (chemin d'installation de Visual Studio). \Microsoft Visual Studio (numéro de version actuel) \Common7\IDE\Remote Debugger(Remote Machine Version), et copiez et collez ce dossier sur la machine distante ou partagez ce dossier afin qu'il soit accessible depuis la machine distante.
-
Sur la machine distante, connectez-vous en tant que même utilisateur que la machine locale (voir l'étape 2). De là, naviguez vers le dossier copié ou partagé de l'étape 3, et faites un clic droit sur "msvsmon.exe" et dans le menu contextuel, sélectionnez "Exécuter en tant qu'administrateur".
-
Remote Monitor doit démarrer et déclarer qu'il a démarré un serveur habituellement sous le nom de (utilisateur)@(machine distante) ou tout autre nom.
-
Dans VS, sélectionnez Debug -> Attach To Process dans le menu, laissez le transport sur "Default" et pour le "Qualifier Name" entrez le nom de l'étape 5.
Si tout se passe correctement, cela fera apparaître la liste des processus sur la machine distante.
Bien sûr, il y a beaucoup plus dans ce sujet, et pour le débogage du code natif le processus pourrait être encore plus simple, mais les étapes que j'ai listées ici devraient fonctionner dans tous les cas.
Pour plus d'informations, vous pouvez consulter le site suivant http://www.codeproject.com/KB/aspnet/IISRemoteDebugging.aspx ou sur le MSDN, ainsi que de nombreux messages sur ce site.
J'espère que cela vous aidera.
0 votes
Pour tous ceux qui cherchent le processus à suivre pour déboguer des applications ASP.NET, il s'agit de
iisexpress.exe