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 à la place lorsque j'appuie sur F5?
ouvrez les propriétés du projet, accédez à l'onglet Web et choisissez l'option pour IIS.
Cela démarre en fait une instance de l'application dans IIS et attache le débogueur. Si vous vouliez uniquement attacher à une instance IIS existante, choisissez attacher pour traiter à partir de le menu de débogage.
Débogage-> Attacher au processus ...
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 quelle application piscine que vous frappez, vous devrez les attacher à tous).
Debug -> Attach to Process dans le menu VS.
Pour savoir à quel processus w3wp.exe attacher, vous pouvez utiliser la commande suivante sur un serveur 2008
c:\%systemroot%\system32\inetsrv\appcmd list wp
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 accès au gestionnaire de 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 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 d'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 s'est arrêté en raison d'un temps d'inactivité, vous devez d'abord utiliser le site afin de faire apparaître le processus dans la liste.
De plus, si l'application est un "Web Garden" (qui possède plusieurs w3wp.exe), même après avoir attaché le bon processus, il n'y a toujours aucune garantie que les points d'arrêt seront atteints, car le trafic vers le site peut être dirigé vers un autre processus.
Notez également que si vous vous connectez à une application qui s'exécute en mode édition, elle s'exécutera désormais en mode débogage, ce qui signifie par exemple qu'il n'y aura pas de limitations de délai d'expiration (ce qui pourrait être un peu un problème si vous essayez réellement de résoudre une erreur de temporisation).
Si vous souhaitez vous connecter à un processus distant, voici la meilleure pratique:
Bien sûr, il y a beaucoup plus dans ce sujet, et pour le débogage du code natif, le processus peut ê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 le MSDN, ainsi que de nombreux messages sur ce site.
J'espère que cela vous aidera.
Ou vous pouvez utiliser l'un des attachements à IIS à Visual Studio.
Mon extension préférée est VSCommands (pour VS 2010-2012 ou 201 , 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 passez de "Utiliser le serveur Web par défaut" à "Utiliser un serveur personnalisé". Entrez " http: // localhost " dans l'url de base.
(suppose VS 2008)