Déboguer à distance ASP.NET Core sur Azure App Service (Windows)

Cet article explique comment attacher le débogueur Visual Studio à une application ASP.NET Core s’exécutant sur Azure App Service. Les étapes ci-dessous vous permettent de déboguer l’application comme si elle s’exécutait localement.

Prérequis

  • Visual Studio 2022 avec les charges de travail Développement web et ASP.NET et Développement Azure installées.

  • Vous devez d’abord déployer une application ASP.NET Core pour Azure App Service (Windows) à partir de Visual Studio, et l’application doit être en cours d’exécution.

    Pour obtenir une formation pratique qui inclut le déploiement App Service, consultez Déboguer à distance ASP.NET Core sur Azure.

  • Votre profil de publication dans Visual Studio doit être défini sur « Debug » au lieu de « Release » avant de publier.

Activer le débogage à distance

Avant de pouvoir déboguer ce problème avec Visual Studio, vous devez activer la fonctionnalité de débogage à distance sur l’instance App Service. Ce paramètre permet au débogueur Visual Studio de se connecter au processus d’hébergement web App Service principal.

  1. Connectez-vous à votre propre portail Azure.

    Localisez votre application déployée dans le portail Azure. Vous pouvez trouver votre application en accédant à la page App Services, puis en sélectionnant l’instance App Service. Vous pouvez également rechercher l’instance App Service directement par son nom dans la barre de recherche en haut. (Dans cet exemple, l’instance App Service est nommée GitHubBrowser123.)

    Capture d’écran de la recherche Azure.

  2. Dans la page des paramètres de l’instance App Service, sélectionnez Configuration dans le volet de navigation de gauche, puis sélectionnez l’onglet Paramètres généraux.

  3. En bas de la page, veillez à définir la fonctionnalité Débogage à distance sur Activé et sélectionnez Visual Studio 2022 comme Version Visual Studio distante.

    Capture d’écran des paramètres de débogage à distance Azure.

  4. Sélectionnez Enregistrer en haut de la page pour enregistrer les changements apportés.

Votre instance App Service prend maintenant en charge le débogage à distance via Visual Studio.

Configurer les paramètres de débogage

  1. Générez votre application sans erreur. Arrêtez votre application si elle est en cours d'exécution localement.

    Remarque

    Vérifiez que l’état de votre code local correspond à ce qui a été déployé sur Azure. Cela garantit que les fichiers de symboles et le code source en local s’alignent sur l’application déployée.

  2. Sélectionnez Déboguer > Options dans le menu supérieur de Visual Studio. Vérifiez que l’option Activer uniquement mon code n’est pas cochée (comme indiqué ci-dessous), puis sélectionnez OK.

    La modification de ce paramètre permet à Visual Studio de déboguer le code optimisé déployé sur Azure à l’aide des fichiers de symboles nécessaires à partir de votre dossier bin local. Le débogueur se sert des fichiers de symboles comme d'un pont entre le code compilé, en cours d’exécution, et le code source dans Visual Studio. Les fichiers de symboles correspondants sont requis pour le débogage à distance.

    Capture d’écran des paramètres de débogage Visual Studio.

Attacher le débogueur à App Service

  1. Dans le menu principal en haut de Visual Studio, sélectionnez Déboguer > Attacher au processus pour ouvrir la boîte de dialogue correspondante. À l’aide de cette fenêtre, vous pouvez vous connecter et effectuer des attachements à différentes cibles. Dans ce cas, vous allez vous connecter à l’instance App Service que vous avez créée à l’étape précédente.

  2. Sélectionnez la liste déroulante Type de connexion et choisissez l’option Microsoft Azure App Services.

  3. Sélectionnez Rechercher... à côté du champ Cible de connexion pour ouvrir une boîte de dialogue vous permettant de parcourir vos abonnements et services d’application Azure.

    Si vous n’êtes pas déjà connecté avec votre abonnement Azure, sélectionnez Rechercher..., puis connectez-vous.

  4. Recherchez et sélectionnez l’instance App Service que vous avez créée à l’étape précédente, puis choisissez OK.

  5. Le processus w3wp.exe doit apparaître dans la liste des processus disponibles auxquels il est possible de se connecter. w3wp.exe est le processus principal de l'Azure App Service qui héberge l’application déployée. Sélectionnez le processus w3wp.exe, puis choisissez Joindre en bas à droite.

    Capture d’écran de l’attachement aux fonctionnalités de traitement.

  6. Dans un fichier d’application C# tel que Index.cshtml.cs, cliquez dans la marge gauche pour définir un point d’arrêt. Autre possibilité : cliquez avec le bouton droit et choisissez Point d’arrêt>Insérer un point d’arrêt.

  7. Dans l’application web, accédez au point de terminaison avec le point d’arrêt. Si vous êtes attaché au processus, mais que vous ne pouvez pas atteindre le point d’arrêt, assurez-vous que votre profil de publication dans Visual Studio est bien défini sur une configuration « Debug » et non pas « Release ».

  8. Éventuellement, vous pouvez vérifier que Visual Studio a bien chargé les fichiers de symboles pour votre session de débogage. Accédez à Déboguer > Windows > Modules pour ouvrir la fenêtre Modules. Cette fenêtre indique que les fichiers de symboles ont été correctement chargés après les modifications que vous avez apportées précédemment à la configuration Uniquement mon code.

    Capture d’écran de la fenêtre des fichiers de symboles.

Remarque

Ensuite, pour déboguer le service d’application, sélectionnez Déboguer>Rattacher à w3wp.exe ou utilisez le raccourci Maj+Alt+P.