Déboguer un service Azure Cloud Services (support étendu) dans Visual Studio
Visual Studio vous propose différentes options pour déboguer les Azure Cloud Services (support étendu) et les machines virtuelles.
Prérequis
- Visual Studio (voir [téléchargements de Visual Studio] (https://visualstudio.microsoft.com/downloads/?cid=learn-onpage-download-cta)) avec la charge de travail Développement Azure installée, et les modèles de projet et d’éléments .NET Framework installés. Consultez Modifier Visual Studio.
- Un compte Azure. Si vous n’avez pas de compte Azure, activez vos avantages Azure pour les abonnés Visual Studio ou inscrivez-vous pour bénéficier d’un essai gratuit.
Déboguer votre service cloud sur votre ordinateur local
Vous pouvez gagner du temps et de l’argent en utilisant l’émulateur de calcul Azure pour déboguer votre service cloud sur une machine locale. Déboguer un service localement avant de le déployer vous permet d’améliorer la fiabilité et les performances, tout en évitant les coûts de temps de calcul. Certaines erreurs peuvent toutefois se produire quand vous exécutez un service cloud directement dans Azure. Vous pouvez déboguer ces erreurs si vous activez le débogage distant quand vous publiez votre service, puis attachez le débogueur à une instance de rôle.
L’émulateur simule le service de calcul Azure et s’exécute dans votre environnement local pour vous permettre de tester et déboguer votre service cloud avant son déploiement. Il gère le cycle de vie de vos instances de rôle et donne accès aux ressources simulées, telles que le stockage local. Quand vous déboguez ou exécutez votre service à partir de Visual Studio, le programme démarre automatiquement l’émulateur comme une application d’arrière-plan, puis déploie votre service vers l’émulateur. Vous pouvez utiliser l’émulateur pour voir votre service en cours d’exécution dans l’environnement local. Vous pouvez exécuter la version complète ou express de l’émulateur. Consultez Utilisation de l’émulateur express pour exécuter et déboguer un service cloud localement.
Pour déboguer votre service cloud sur votre ordinateur local
Dans la barre de menu, sélectionnez Déboguer>Démarrer le débogage pour exécuter votre projet Azure Cloud Services (support étendu). Vous pouvez aussi appuyer sur F5. Un message s'affiche, indiquant que l'émulateur de calcul est en cours de démarrage. Une icône s’affiche dans la zone de notification pour confirmer le démarrage de l’émulateur.
Affichez l’interface utilisateur de l’émulateur de calcul en ouvrant le menu contextuel de l’icône Azure dans la zone de notification, puis en sélectionnant Afficher l’interface utilisateur de l’émulateur de calcul.
Le volet gauche de l'interface utilisateur montre les services actuellement déployés sur l'émulateur de calcul et les instances de rôle en cours d'exécution sur chaque service. Vous pouvez sélectionner le service ou des rôles pour afficher les informations liées au cycle de vie, aux journaux et aux diagnostics dans le volet de droite. Si vous placez le focus dans la marge supérieure d’une fenêtre incluse, celle-ci se développe pour remplir le volet droit.
Parcourez l’application en choisissant des commandes dans le menu Déboguer et en définissant des points d’arrêt dans votre code. À mesure que vous parcourez l'application dans le débogueur, les volets sont mis à jour avec l'état actuel de l'application. Lorsque vous arrêtez le débogage, le déploiement de l’application est supprimé. Si votre application inclut un rôle web et que vous avez réglé la propriété Action de démarrage pour démarrer le navigateur web, Visual Studio démarre votre application web dans le navigateur. Si vous modifiez le nombre d’instances d’un rôle dans la configuration du service, vous devez arrêter votre service cloud, puis redémarrer le débogage afin de pouvoir déboguer ces nouvelles instances du rôle.
Notes
Quand vous cessez l’exécution ou le débogage de votre service, les émulateurs de calcul et de stockage locaux ne s’arrêtent pas. Vous devez les arrêter explicitement à partir de la zone de notification.
Déboguer un service cloud dans Azure
L’activation du débogage à distance pour un service cloud à l’aide de la procédure décrite dans cette section n’entraîne pas de baisse des performances ni de coûts supplémentaires. N’utilisez pas le débogage distant pour un service de production, car cela peut avoir un impact pour les clients qui utilisent ce service.
Pour activer le débogage à distance pour un service cloud (support étendu)
Ajoutez un point de terminaison à ServiceDefinition.csdef pour le port msvsmon par défaut. Pour Visual Studio 2019, il s’agit du port 4024.
<Endpoints> <InputEndpoint name="RemoteDebug" protocol="tcp" port="4024" localPort="4024" /> </Endpoints>
Notes
D’autres versions de Visual Studio ont des ports différents. Consultez Attributions de port au débogueur à distance.
Ouvrez le menu contextuel du projet Azure, puis sélectionnez Publier.
Sélectionnez l’environnement Intermédiaire et la configuration Débogage.
Il s’agit simplement d’une indication. Vous pouvez choisir d’exécuter vos environnements de test dans un environnement de production. L’activation du débogage distant sur l’environnement de production risque toutefois d’avoir un impact pour les utilisateurs. Vous pouvez choisir la configuration Release, mais la configuration Debug présente l’avantage de simplifier le débogage.
Suivez les étapes habituelles décrites dans Services cloud (support étendu), mais en activant la case à cocher Activer le Bureau à distance pour tous les rôles.
Vous serez invité à créer un nom d'utilisateur et un mot de passe pour l'utilisateur du Bureau à distance. Vous en aurez besoin plus tard pour vous connecter à cette machine virtuelle.
Passez à l’écran suivant, passez en revue vos paramètres et, quand vous êtes prêt, cliquez sur Publier et attendez que le déploiement se termine.
Connectez-vous au portail Azure et accédez au service cloud (support étendu) que vous souhaitez déboguer.
Choisissez Rôles et instances dans le volet de gauche, puis choisissez le rôle que vous souhaitez déboguer à distance.
Cliquez sur Connexion dans la fenêtre contextuelle Instance de rôle à droite, puis choisissez le bouton Connexion pour télécharger un fichier Bureau à distance qui vous permettra de vous connecter à la machine virtuelle. Connectez-vous à l’aide des informations d’identification que vous avez créées précédemment, au moment de l’activation du Bureau à distance.
Sur la machine virtuelle Azure distante, installez les outils Débogueur distant Visual Studio 2019 comme décrit dans Débogage à distance.
À partir du bureau sur la machine virtuelle, exécutez la commande D:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\Remote Debugger\x64\msvsmon.exe. Veillez à l’exécuter en tant qu’administrateur.
Acceptez les invites d’autorisation d’accès à travers le pare-feu. Vous devez voir un message indiquant que msvsmon.exe a commencé à écouter les connexions.
Dans le portail Azure, ouvrez le groupe de ressources et récupérez l’adresse IP publique du service cloud (support étendu).
Pour attacher le débogueur à un service cloud (support étendu) dans Azure
Notes
Dans la mesure du possible, vous devez déboguer avec la configuration Debug choisie dans le processus Publier. Cependant, si vous déboguez une configuration Release, dans Visual Studio, utilisez Ctrl+Q pour rechercher « Uniquement mon code » et décochez Activer Uniquement mon code dans Outils>Options>Débogage>Général. Les builds Release sont optimisées et ne sont donc pas considérées comme « Mon code ».
Choisissez Déboguer>Attacher au processus (ou appuyez surCtrl+Alt+P).
Conservez le type de connexion Par défaut.
Entrez la cible de connexion en utilisant votre adresse IP et le port
{ipaddress}:4024
.Définissez Attacher à sur Automatique.
Connectez-vous à l’aide des mêmes informations d’identification que celles de l’utilisateur du Bureau à distance.
Sélectionnez Afficher des processus pour tous les utilisateurs. Si vous déboguez un rôle de travail, attachez à WaWorkerHost.exe. Si vous déboguez un rôle web, attachez au processus w3wp.exe. Pour un rôle d’API web, choisissez WaIISHost.exe.
Définissez des points d’arrêt (accédez à la ligne et appuyez sur F9), accédez à l’URL publique du site et reproduisez le scénario à déboguer.
Pour activer le débogage à distance pour un service cloud (support étendu)
Ajoutez un point de terminaison à ServiceDefinition.csdef pour le port msvsmon par défaut. Pour Visual Studio 2022, il s’agit du port 4026. Pour Visual Studio 2019, il s’agit du port 4024.
<Endpoints> <InputEndpoint name="RemoteDebug" protocol="tcp" port="4026" localPort="4026" /> </Endpoints>
Notes
D’autres versions de Visual Studio ont des ports différents. Consultez Attributions de port au débogueur à distance.
Si vous ciblez .NET 4.8, veillez à ouvrir le fichier ServiceConfiguration.Cloud.cscfg et à vérifier la valeur de l’attribut
osFamily
sur l’élémentServiceConfiguration
au moment de la publication de services cloud (support étendu). Pour un projet .NET 4.8, utilisezosFamily="7"
.Ouvrez le menu contextuel du projet Azure, puis sélectionnez Publier.
Sélectionnez l’environnement Intermédiaire et la configuration Débogage.
Il s’agit simplement d’une indication. Vous pouvez choisir d’exécuter vos environnements de test dans un environnement de production. L’activation du débogage distant sur l’environnement de production risque toutefois d’avoir un impact pour les utilisateurs. Vous pouvez choisir la configuration Release, mais la configuration Debug présente l’avantage de simplifier le débogage.
Suivez les étapes habituelles décrites dans Services cloud (support étendu), mais en activant la case à cocher Activer le Bureau à distance pour tous les rôles.
Vous serez invité à créer un nom d'utilisateur et un mot de passe pour l'utilisateur du Bureau à distance. Vous en aurez besoin plus tard pour vous connecter à cette machine virtuelle.
Passez à l’écran suivant, passez en revue vos paramètres et, quand vous êtes prêt, cliquez sur Publier et attendez que le déploiement se termine.
Connectez-vous au portail Azure et accédez au service cloud (support étendu) que vous souhaitez déboguer.
Choisissez Rôles et instances dans le volet de gauche, puis choisissez le rôle que vous souhaitez déboguer à distance.
Cliquez sur Connexion dans la fenêtre contextuelle Instance de rôle à droite, puis choisissez le bouton Connexion pour télécharger un fichier Bureau à distance qui vous permettra de vous connecter à la machine virtuelle. Connectez-vous à l’aide des informations d’identification que vous avez créées précédemment, au moment de l’activation du Bureau à distance.
Sur la machine virtuelle Azure distante, installez les outils Débogueur distant Visual Studio 2022 comme décrit dans Débogage à distance.
Depuis le bureau de la machine virtuelle, exécutez la commande msvsmon.exe dans le dossier d’installation de Visual Studio sous
Common7\IDE\Remote Debugger\x64
. Veillez à l’exécuter en tant qu’administrateur.Acceptez les invites d’autorisation d’accès à travers le pare-feu. Vous devez voir un message indiquant que msvsmon.exe a commencé à écouter les connexions.
Dans le portail Azure, ouvrez le groupe de ressources et récupérez l’adresse IP publique du service cloud (support étendu).
Pour attacher le débogueur à un service cloud (support étendu) dans Azure
Notes
Dans la mesure du possible, vous devez déboguer avec la configuration Debug choisie dans le processus Publier. Cependant, si vous déboguez une configuration Release, dans Visual Studio, utilisez Ctrl+Q pour rechercher « Uniquement mon code » et décochez Activer Uniquement mon code dans Outils>Options>Débogage>Général. Les builds Release sont optimisées et ne sont donc pas considérées comme « Mon code ».
Choisissez Déboguer>Attacher au processus (ou appuyez surCtrl+Alt+P).
Conservez le type de connexion Par défaut.
Entrez la cible de connexion en utilisant votre adresse IP et le port
{ipaddress}:4026
.Définissez Attacher à sur Automatique.
Connectez-vous à l’aide des mêmes informations d’identification que celles de l’utilisateur du Bureau à distance.
Sélectionnez Afficher des processus pour tous les utilisateurs. Si vous déboguez un rôle de travail, attachez à WaWorkerHost.exe. Si vous déboguez un rôle web, attachez au processus w3wp.exe. Pour un rôle d’API web, choisissez WaIISHost.exe.
Définissez des points d’arrêt (accédez à la ligne et appuyez sur F9), accédez à l’URL publique du site et reproduisez le scénario à déboguer.
Limitations du débogage distant dans Azure
Le débogage à distance présente les limitations suivantes :
Quand le débogage distant est activé, vous ne pouvez pas publier un service cloud dans lequel un rôle comporte plus de 25 instances.
Le débogueur utilise les ports 30400 à 30424, 31400 à 31424 et 32400 à 32424. Si vous essayez d’utiliser ces ports, vous ne pourrez pas publier votre service, et l’un des messages d’erreur suivants s’affichera dans le journal des activités Azure :
- Erreur lors de la validation du fichier .cscfg par rapport au fichier .csdef.
La plage de ports réservée « range » pour le point de terminaison
Microsoft.WindowsAzure.PlugIns.RemoteDebugger.Connector
du rôle « rôle » chevauche une plage ou un port déjà défini. - L’allocation a échoué. Réessayez ultérieurement, essayez de réduire la taille de la machine virtuelle ou le nombre d'instances de rôle, ou essayez de déployer dans une autre région.
- Erreur lors de la validation du fichier .cscfg par rapport au fichier .csdef.
La plage de ports réservée « range » pour le point de terminaison
Débogage de Azure App Service
Vous pouvez déboguer des programmes qui s'exécutent dans Azure App Service à l'aide de la boîte de dialogue Attacher au processus dans Visual Studio.
Remarque
Cette option est disponible uniquement pour Azure App Service à partir de Visual Studio 2022 17.1.
Pour déboguer un service Windows Azure App Service
Sous Déboguer, sélectionnez Attacher au processus.
Dans Type de connexion, remplacez la valeur par défaut par Microsoft Azure App Services, puis sélectionnez Rechercher...
Dans la boîte de dialogue qui s’ouvre, sélectionnez un nom sous Nom de l’abonnement.
Remarque
Vous devez être connecté à un compte Microsoft avec accès à l'abonnement qui contient votre service Azure App Service.
Filtrez la vue sur le critère Groupe de ressources ou Type de ressource, ou effectuez une recherche par nom.
Ensuite, sélectionnez le service App Service que vous souhaitez déboguer, puis sélectionnez OK.
Ceci active le débogage à distance sur votre service App Service et affiche la liste des processus disponibles pour l’attachement.
Sélectionnez le processus cible de l’attachement, puis choisissez Attacher pour démarrer le débogage.
Déboguer des machines virtuelles Azure
Vous pouvez déboguer des programmes exécutés sur des machines virtuelles Azure à l'aide de l'Explorateur de serveurs dans Visual Studio. Quand vous activez le débogage distant sur une machine virtuelle Azure, Azure installe l’extension de débogage distant sur cette machine virtuelle. Vous pouvez ensuite l’attacher aux processus sur la machine virtuelle et procéder au débogage normalement.
Remarque
Les machines virtuelles créées via la pile Azure Resource Manager peuvent être déboguées à distance à l'aide de Cloud Explorer dans Visual Studio 2019. Pour plus d’informations, consultez Gestion des ressources Azure avec Cloud Explorer.
Pour déboguer une machine virtuelle Azure
Dans l’Explorateur de serveurs, développez le nœud Machines virtuelles, puis sélectionnez le nœud de la machine virtuelle à déboguer.
Ouvrez le menu contextuel, puis sélectionnez Activer le débogage. Quand vous êtes invité à confirmer l’activation du débogage sur la machine virtuelle, sélectionnez Oui.
Azure installe l’extension de débogage distant sur la machine virtuelle pour activer le débogage.
Une fois l’extension de débogage à distance installée, ouvrez le menu contextuel de la machine virtuelle et sélectionnez Attacher le débogueur...
Azure récupère la liste des processus sur la machine virtuelle et les affiche dans la boîte de dialogue Attacher au processus.
Dans la boîte de dialogue Attacher au processus, sélectionnez Sélectionner pour limiter la liste des résultats et afficher uniquement les types de code que vous voulez déboguer. Vous pouvez déboguer du code managé 32 ou 64 bits, du code natif ou les deux.
Choisissez les processus que vous voulez déboguer sur la machine virtuelle, puis sélectionnez Attacher. Par exemple, vous pouvez choisir le processus w3wp.exe pour déboguer une application web sur la machine virtuelle. Pour plus d’informations, consultez Déboguer un ou plusieurs processus dans Visual Studio et Architecture de rôle Azure.
Créer un projet web et une machine virtuelle pour le débogage
Avant de publier votre projet Azure, il peut être utile de le tester dans un environnement contrôlé qui prend en charge les scénarios de test et de débogage, et où vous pouvez installer les programmes de test et de surveillance. Pour effectuer de tels tests, vous pouvez déboguer votre application à distance sur une machine virtuelle.
Les projets Visual Studio ASP.NET permettent de créer une machine virtuelle que vous pouvez utiliser pour tester les applications. La machine virtuelle inclut les points de terminaison généralement requis tels que PowerShell, le Bureau à distance et WebDeploy.
Pour créer un projet web et une machine virtuelle pour le débogage
Dans Visual Studio, créez une application web ASP.NET.
Dans la boîte de dialogue Nouveau projet ASP.NET, dans la section Azure, sélectionnez Machine virtuelle dans la zone de liste déroulante. Laissez la case Créer des ressources distantes cochée. Sélectionnez OK pour poursuivre.
La boîte de dialogue Créer une machine virtuelle sur Azure apparaît.
Notes
Vous êtes invité à vous connecter à votre compte Azure si vous ne l’êtes pas déjà.
Choisissez les différents paramètres de la machine virtuelle, puis sélectionnez OK. Pour plus d’informations, consultez Machines virtuelles .
Le nom que vous entrez dans le champ Nom DNS sera le nom de votre machine virtuelle.
Azure crée la machine virtuelle, puis provisionne et configure les points de terminaison tels que le Bureau à distance et Web Deploy.
Une fois la machine virtuelle entièrement configurée, sélectionnez son nœud dans l'Explorateur de serveurs.
Ouvrez le menu contextuel, puis sélectionnez Activer le débogage. Quand vous êtes invité à confirmer l’activation du débogage sur la machine virtuelle, sélectionnez Oui.
Azure installe l’extension de débogage distant sur la machine virtuelle pour activer le débogage.
Publiez votre projet comme décrit dans la rubrique Déploiement d’un projet web à l’aide de la publication en un clic dans Visual Studio. Comme vous voulez effectuer le débogage sur la machine virtuelle, sur la page Paramètres de l’Assistant Publier le site web, sélectionnez la configuration Débogage. Ceci permet de s’assurer que les symboles de code sont disponibles pendant le débogage.
Dans les Options de publication des fichiers, sélectionnez Supprimer les fichiers supplémentaires à la destination si le projet a déjà été déployé précédemment.
Une fois le projet publié, dans le menu contextuel de la machine virtuelle dans l’Explorateur de serveurs, sélectionnez Attacher le débogueur...
Azure récupère la liste des processus sur la machine virtuelle et les affiche dans la boîte de dialogue Attacher au processus.
Dans la boîte de dialogue Attacher au processus, sélectionnez Sélectionner pour limiter la liste des résultats et afficher uniquement les types de code que vous voulez déboguer. Vous pouvez déboguer du code managé 32 ou 64 bits, du code natif ou les deux.
Choisissez les processus que vous voulez déboguer sur la machine virtuelle, puis sélectionnez Attacher. Par exemple, vous pouvez choisir le processus w3wp.exe pour déboguer une application web sur la machine virtuelle. Pour plus d’informations, consultez Déboguer un ou plusieurs processus dans Visual Studio .
Contenu connexe
Utilisez Azure Diagnostics pour enregistrer des informations détaillées à partir du code exécuté dans les rôles, sur Azure. Consultez Collecter des données de journalisation avec les diagnostics Azure.
Pour d’autres scénarios de débogage à distance, consultez Débogage à distance.