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.

  1. 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.

  2. 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 et launchSettings.json dans Utiliser plusieurs environnements dans ASP.NET Core.

  3. 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.
  4. Vérifiez que Lancer le navigateur est sélectionné.

  5. 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 et http://localhost:5000. Pour IIS Express, l’URL SSL de l’application est généralement http://localhost:44334.

  6. 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.

    Paramètres du débogueur ASP.NET Core

    Pour plus d’informations sur l’utilisation des variables d’environnement, consultez Environnements.

  7. 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.

  8. 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.

  1. 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.

  2. Sélectionnez l’onglet Débogage.

  3. 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.
  4. En regard de Lancer, sélectionnez IIS Express ou IIS dans la liste déroulante.

  5. Vérifiez que Lancer le navigateur est sélectionné.

  6. 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.

    Paramètres du débogueur ASP.NET Core

  7. Utilisez Fichier>Enregistrer les éléments sélectionnés ou Ctrl+S pour enregistrer les modifications.

  8. 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.

  9. 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.

  1. 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.

  2. 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.

  3. 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,
      1. sélectionnez IIS local dans la liste déroulante.
      2. 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.
  4. Sous Débogueurs, sélectionnez ASP.NET.

    Capture d’écran montrant ASP.NET paramètres du débogueur.

  5. Choisissez Fichier>Enregistrer les éléments sélectionnés (ou appuyez sur Ctrl+S) pour enregistrer les modifications.

  6. 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.

  7. 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.

  1. 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.

  2. 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 :

  1. Dans Visual Studio, ouvrez le fichier web.config du projet ASP.NET.

  2. Web.config est un fichier XML qui contient des sections imbriquées marquées par des balises. Recherchez la section configuration/system.web/compilation. (Si l’élément compilation n’existe pas, créez-le.)

  3. Assurez-vous que l’attribut debug de l’élément compilation est défini sur true. (Si l’élément compilation ne contient pas d’attribut debug, ajoutez-le et définissez-le sur true.)

    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ément compilation correspond à l’infrastructure sur le serveur IIS.

    L’élément compilation du fichier web.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éments configuration et system.web, et l’élément compilation 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.