Déboguer des applications ASP.NET ou ASP.NET Core dans Visual Studio
Vous pouvez déboguer des applications ASP.NET ou ASP.NET Core dans Visual Studio. Le processus diffère entre ASP.NET et ASP.NET Core, et si vous l’exécutez sur un serveur IIS Express ou sur un serveur IIS local.
Notes
Les étapes et paramètres suivants s’appliquent uniquement au débogage d’applications sur un serveur local. Le débogage d’applications sur un serveur IIS distant utilise Attacher au processus et ignore ces paramètres. Pour plus d’informations et d’instructions sur le débogage à distance d’applications ASP.NET sur IIS, consultez ASP.NET de débogage à distance sur un ordinateur IIS ou Débogage à distance ASP.NET Core sur un ordinateur IIS distant.
Les serveurs Kestrel et IIS Express intégrés sont inclus dans Visual Studio. Kestrel est le serveur de débogage par défaut pour les projets ASP.NET Core. Il est préconfiguré. IIS Express est le serveur de débogage par défaut pour ASP.NET.
Le serveur IIS Express intégré est inclus dans Visual Studio. IIS Express est le serveur de débogage par défaut pour les projets ASP.NET et ASP.NET Core. Il est préconfiguré. Il s’agit du moyen le plus simple d’effectuer un débogage. Il est idéal pour le débogage et les tests initiaux.
Avec ASP.NET Core, vous pouvez également effectuer des débogages sur le serveur web Kestrel.
Prérequis pour le serveur IIS local
Vous pouvez également déboguer une application ASP.NET ou ASP.NET Core sur un serveur IIS local (version 8.0 ou ultérieure) configuré pour exécuter l’application. Pour effectuer un débogage sur IIS local, vous devez répondre aux exigences suivantes :
Si elle n’est pas installée, installez la charge de travail ASP.NET et de développement web. (Réexécutez Visual Studio Installer, sélectionnez Modifier, puis ajoutez cette charge de travail.)
Exécutez Visual Studio en tant qu’administrateur.
Installez et configurez correctement IIS avec la ou les versions appropriées d’ASP.NET et/ou d’ASP.NET Core. Pour plus d’informations sur l’utilisation d’IIS avec ASP.NET Core, consultez Héberger ASP.NET Core sur Windows avec IIS. Pour ASP.NET, consultez Installer des modules IIS et ASP.NET.
Vérifiez que l’application s’exécute sur IIS sans erreurs.
Déboguer des applications ASP.NET Core
Un profil par défaut basé sur HTTPS ou un profil basé sur le nom du projet peut être présent, qui sont configurés pour le serveur web Kestrel. Si vous effectuez un débogage sur un serveur IIS local, assurez-vous de répondre aux conditions préalables pour un débogage IIS local.
Sélectionnez le projet ASP.NET Core dans l’Explorateur de solutions de Visual Studio et cliquez sur l’icône Propriétés, appuyez sur Alt+Entrée ou effectuez un clic droit et choisissez Propriétés.
Sélectionnez l’onglet Déboguer, puis cliquez sur le lien pour ouvrir l’interface utilisateur Ouvrir les profils de lancement de débogage.
L’interface utilisateur présentée correspond aux paramètres du fichier
launchSettings.json
du projet. Pour plus d’informations sur ce fichier, consultez la section Développement etlaunchSettings.json
dans Utiliser plusieurs environnements dans ASP.NET Core.Sélectionnez le profil à configurer pour le débogage.
- Pour Kestrel, sélectionnez le profil HTTPS ou le profil nommé après le projet.
- Pour IIS Express, sélectionnez IIS Express dans la liste déroulante.
- Pour IIS local, sélectionnez Nouveau et créez un profil IIS.
Vérifiez que Lancer le navigateur est sélectionné.
Assurez-vous que l’URL, l’URL de l’application et l’URL SSL de l’application sont correctes.
Url spécifie l’emplacement de l’URL de l’hôte pour .NET ou .NET Core. Pour un profil nommé d’après le projet (autrement dit, la propriété commandName dans
launchSettings.json
est Projet), le serveur Kestrel est à l’écoute du port spécifié. Pour un profil IIS, il s’agit généralement de la même valeur que l’URL de l’application. Pour plus d’informations, consultez la section Profil de lancement IIS sous Configurer le projet.L’URL de l’application et l’URL SSL de l’application spécifient la ou les URL de l’application. Pour un profil nommé d’après le projet, cette propriété spécifie les URL du serveur Kestrel, généralement
https://localhost:5001
ethttp://localhost:5000
. Pour IIS Express, l’URL SSL de l’application est généralementhttp://localhost:44334
.Sous Variables d’environnement, assurez-vous que ASPNETCORE_ENVIRONMENT est présent avec la valeur Développement. Si ce n’est pas le cas, ajoutez la variable.
Pour plus d’informations sur l’utilisation des variables d’environnement, consultez Environnements.
Pour déboguer l’application, dans votre projet, définissez des points d’arrêt sur un code. Dans la barre d’outils Visual Studio, vérifiez que la configuration est définie sur Déboguer.
Pour démarrer le débogage, sélectionnez le nom du profil dans la barre d’outils, par exemple HTTPS, IIS Express ou <nom du profil IIS> dans la barre d’outils, sélectionnez Démarrer le débogage dans le menu Déboguer ou appuyez sur F5. Le débogueur s’arrête aux points d’arrêt. Si le débogueur ne peut pas atteindre les points d’arrêt, consultez Résoudre les problèmes de débogage.
Déboguer des applications ASP.NET Core
IIS Express est la valeur par défaut. Cette valeur est préconfigurée. Si vous effectuez un débogage sur le serveur IIS local, assurez-vous que vous répondez aux exigences pour le débogage IIS local.
Sélectionnez le projet ASP.NET Core dans l’Explorateur de solutions de Visual Studio et cliquez sur l’icône Propriétés, appuyez sur Alt+Entrée ou effectuez un clic droit et choisissez Propriétés.
Sélectionnez l’onglet Débogage.
Dans le volet Propriétés, en regard de Profil,
- Pour IIS Express, sélectionnez IIS Express dans la liste déroulante.
- Pour IIS local, sélectionnez le nom de l’application dans la liste déroulante, ou sélectionnez Nouveau, créez un nom de profil, puis sélectionnez OK.
En regard de Lancer, sélectionnez IIS Express ou IIS dans la liste déroulante.
Vérifiez que Lancer le navigateur est sélectionné.
Sous Variables d’environnement, assurez-vous que ASPNETCORE_ENVIRONMENT est présent avec la valeur Développement. Si ce n’est pas le cas, sélectionnez Ajouter et ajoutez-le.
Utilisez Fichier>Enregistrer les éléments sélectionnés ou Ctrl+S pour enregistrer les modifications.
Pour déboguer l’application, dans votre projet, définissez des points d’arrêt sur un code. Dans la barre d’outils Visual Studio, vérifiez que la configuration est définie sur Déboguer et que IIS Express, ou le nouveau nom de profil IIS, s’affiche dans le champ de l’émulateur.
Pour démarrer le débogage, sélectionnez IIS Express ou <nom du profil ISS> dans la barre d’outils, sélectionnez Démarrer le débogage dans le menu Déboguer, ou appuyez sur F5. Le débogueur s’arrête aux points d’arrêt. Si le débogueur ne peut pas atteindre les points d’arrêt, consultez Résoudre les problèmes de débogage.
Déboguer des applications ASP.NET
IIS Express est la valeur par défaut. Cette valeur est préconfigurée. Si vous effectuez un débogage sur le serveur IIS local, assurez-vous que vous répondez aux exigences pour le débogage IIS local.
Sélectionnez le projet ASP.NET dans l’Explorateur de solutions de Visual Studio et cliquez sur l’icône Propriétés, appuyez sur Alt+Entrée ou effectuez un clic droit et choisissez Propriétés.
Sélectionnez l’onglet Web.
Si l’onglet Web n’est pas affiché, consultez Déboguer des applications ASP.NET Core. L’onglet Web s’affiche uniquement pour ASP.NET Framework.
Dans le volet Propriétés, sous Serveurs,
- Pour Kestrel, sélectionnez HTTPS dans le menu déroulant.
- Pour IIS Express, sélectionnez IIS Express dans la liste déroulante.
- Pour IIS local,
- sélectionnez IIS local dans la liste déroulante.
- En regard du champ URL du projet, sélectionnez Créer un répertoire virtuel si vous n’avez pas encore configuré l’application dans IIS.
Sous Débogueurs, sélectionnez ASP.NET.
Choisissez Fichier>Enregistrer les éléments sélectionnés (ou appuyez sur Ctrl+S) pour enregistrer les modifications.
Pour déboguer l’application, dans votre projet, définissez des points d’arrêt sur un code. Dans la barre d’outils de Visual Studio, vérifiez que la configuration est définie sur Déboguer et que le navigateur souhaité s’affiche dans IIS Express (<nom du navigateur>) ou IIS local (<nom du navigateur>) dans le champ de l’émulateur.
Pour démarrer le débogage, sélectionnez IIS Express (<nom du navigateur>) ou IIS local (<nom du navigateur>) dans la barre d’outils, sélectionnez Démarrer le débogage dans le menu Déboguer, ou appuyez sur F5. Le débogueur s’arrête aux points d’arrêt. Si le débogueur ne peut pas atteindre les points d’arrêt, consultez Résoudre les problèmes de débogage.
Résoudre les problèmes de débogage
Si le débogage IIS local ne peut pas progresser jusqu’au point d’arrêt, procédez comme suit pour résoudre les problèmes.
Démarrez l’application web à partir d’IIS et assurez-vous qu’elle s’exécute correctement. Laissez l’application web en cours d’exécution.
Dans Visual Studio, sélectionnez Déboguer > Attacher au processus ou appuyez sur Ctrl+Alt+P, puis connectez-vous au processus ASP.NET ou ASP.NET Core (généralement w3wp.exe ou dotnet.exe). Pour plus d’informations, consultez Attacher au processus et Comment trouver le nom du processus ASP.NET.
Si vous pouvez vous connecter et atteindre le point d’arrêt à l’aide d’Attacher au processus, mais pas en utilisant Déboguer>Démarrer le débogage ou F5, un paramètre est probablement incorrect dans les propriétés du projet. Si vous utilisez un fichier HOSTS, vérifiez qu’il est également configuré correctement.
Configurer le débogage dans un fichier web.config
Les projets ASP.NET ont des fichiers web.config
par défaut, qui contiennent à la fois des informations sur la configuration et des informations sur le lancement de l’application, y compris des paramètres de débogage. Les fichiers web.config
doivent être configurés correctement pour le débogage. Les paramètres Propriétés des sections précédentes mettent à jour les fichiers web.config
, mais vous pouvez également les configurer manuellement.
Remarque
Les projets ASP.NET Core n'ont pas initialement de fichiers web.config
, mais utilisent appsettings.json
des fichiers launchSettings.json
and pour la configuration de l'application et les informations de lancement. Le déploiement de l’application crée un ou plusieurs fichiers web.config
dans le projet, mais ils ne contiennent généralement pas d’informations de débogage.
Conseil
Votre processus de déploiement peut mettre à jour les paramètres web.config
, par conséquent, avant d’essayer de procéder au débogage, assurez-vous que le fichier web.config
est configuré pour le débogage.
Pour configurer manuellement un fichier web.config
pour le débogage :
Dans Visual Studio, ouvrez le fichier
web.config
du projet ASP.NET.Web.config
est un fichier XML qui contient des sections imbriquées marquées par des balises. Recherchez la sectionconfiguration/system.web/compilation
. (Si l’élémentcompilation
n’existe pas, créez-le.)Assurez-vous que l’attribut
debug
de l’élémentcompilation
est défini surtrue
. (Si l’élémentcompilation
ne contient pas d’attributdebug
, ajoutez-le et définissez-le surtrue
.)Si vous utilisez le serveur ISS local au lieu du serveur IIS Express par défaut, assurez-vous que la valeur d’attribut
targetFramework
dans l’élémentcompilation
correspond à l’infrastructure sur le serveur IIS.L’élément
compilation
du fichierweb.config
doit ressembler à l’exemple suivant :Remarque
Cet exemple est un fichier partiel
web.config
. Il existe généralement des sections XML supplémentaires dans les élémentsconfiguration
etsystem.web
, et l’élémentcompilation
peut également contenir d’autres attributs et éléments.<configuration> ... <system.web> <compilation debug="true" targetFramework="4.6.1" ... > ... </compilation> </system.web> </configuration>
ASP.NET détecte automatiquement les modifications apportées aux fichiers web.config
et applique les nouveaux paramètres de configuration. Vous n’avez pas à redémarrer l’ordinateur ni à redémarrer le serveur IIS pour que les modifications prennent effet.
Un site web peut contenir plusieurs répertoires et sous-répertoires virtuels, avec des fichiers web.config
dans chacun d’eux. Les applications ASP.NET héritent des paramètres de configuration des fichiers web.config
à des niveaux supérieurs dans le chemin d’accès d’URL. Les paramètres des fichiers web.config
hiérarchiques s’appliquent à toutes les applications ASP.NET en dessous dans la hiérarchie. La définition d’une configuration différente dans un fichier web.config
plus bas dans la hiérarchie remplace les paramètres du fichier supérieur.
Par exemple, si vous spécifiez debug="true"
dans www.microsoft.com/aaa/web.config, toute application du dossier aaa
ou d’un sous-dossier aaa
hérite de ce paramètre, sauf si l’une de ces applications remplace le paramètre par son propre fichier web.config
.
Important
Le mode débogage réduit considérablement les performances de votre application. Lorsque vous déployez une application de production ou effectuez des mesures de performances, définissez debug="false"
dans le fichier web.config
et spécifiez une génération de mise en production.
Contenu connexe
- Débogage ASP.NET : configuration requise
- Guide pratique pour exécuter le processus Worker sous un compte d’utilisateur
- Guide pratique pour rechercher le nom du processus ASP.NET
- Déboguer des applications web déployées
- Guide pratique pour déboguer des exceptions ASP.NET
- Déboguer des applications web : erreurs et dépannage