J’ai un site Web ASP.NET et lorsque j’appuie sur F5, il se connecte automatiquement au serveur de développement ASP.NET. Comment puis-je attacher au processus de travail IIS au lieu d’appuyer sur F5?
Ouvrez les propriétés du projet, accédez à l’onglet Web et choisissez l’option pour IIS.
Cela démarre en réalité une instance de l’application dans IIS et attache le débogueur. Si vous souhaitez uniquement attacher à une instance IIS existante, choisissez l’attachement au processus dans le menu de débogage.
Debug-> Attach To Process …
Sélectionnez le processus aspnet_wp.exe dans la liste.
Si vous exécutez IIS> version 5, le processus sera w3wp.exe , et il y en aura un pour chaque pool d’applications (donc, si vous ne savez pas quel pool d’applications vous touchez, vous devrez vous connecter à tous d’eux).
Debug -> Attach to Process du menu VS.
Pour savoir à quel processus w3wp.exe se connecter, vous pouvez utiliser la commande suivante sur un serveur 2008
c:\%systemroot%\system32\inetsrv\appcmd list wp
Alors que sur Windows 2003, il est
c:\%systemroot%\system32\cscript iisapp.vbs
Pour plus d’informations, voir PID du pool d’applications IIS .
Cependant, si vous avez access au gestionnaire de tâches (taskmgr.exe), vous pouvez y voir directement le nom du processus avec l’ID de processus et, dans la plupart des cas, la colonne “nom d’utilisateur” du processus sera identique à celle de l’application. nom du pool, (bien sûr, vous devez définir ces colonnes pour qu’elles soient visibles dans le gestionnaire de tâches afin de pouvoir afficher les informations).
Mais notez que toutes les méthodes afficheront uniquement les processus en cours d’exécution, ce qui signifie que si votre processus particulier a été arrêté en raison d’un temps d’inactivité, vous devez d’abord utiliser le site pour mettre le processus dans la liste.
Aussi, si l’application est un “Web Garden” (qui a plus d’un w3wp.exe), même après avoir attaché au bon processus, il n’y a toujours aucune garantie que les points d’arrêt seront atteints, car le trafic vers le site pourrait être dirigé vers un autre processus.
Notez également que si vous vous connectez à une application qui s’exécute en mode de publication, il s’exécutera désormais en mode débogage, ce qui signifie par exemple qu’il n’y aura pas de limite de délai d’attente (ce qui pourrait poser problème si vous essayez de résoudre une erreur de délai d’attente).
Si vous souhaitez attacher à un processus distant, voici la meilleure pratique:
Bien sûr, il y a beaucoup plus dans ce sujet, et pour déboguer du code natif, le processus pourrait être encore plus simple, mais les étapes que j’ai énumérées ici devraient fonctionner dans tous les cas.
Pour plus d’informations, vous pouvez consulter http://www.codeproject.com/KB/aspnet/IISRemoteDebugging.aspx ou sur MSDN, ainsi que de nombreux articles sur ce site.
J’espère que cela aidera.
Vous pouvez également utiliser l’ un des plug-ins Attacher à IIS à Visual Studio.
Mon extension préférée est VSCommands (pour VS 2010 – 2012 ou 2013 , mais pas encore 2015) ou ReAttach (fonctionne en 2017).
Accédez aux propriétés de l’application Web. Sélectionnez la section “Options de démarrage” et remplacez “Serveur Web par défaut USe” par “Utiliser un serveur personnalisé”. Entrez ” http: // localhost ” dans l’URL de base.
(suppose VS 2008)