Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier les répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer de répertoire.
À compter de Visual Studio 2017, vous pouvez attacher des processus .NET Core et .NET 5+ s’exécutant sur un déploiement Linux local ou distant via Secure Shell (SSH). Cet article explique comment configurer le débogage et comment déboguer. Pour les scénarios de débogage utilisant des conteneurs Docker, consultez Attacher à un processus en cours d’exécution sur un conteneur Docker et les articles sur les outils de conteneur à la place. Pour déboguer Linux sur WSL 2 à partir de Visual Studio (aucune attachement au processus), consultez Déboguer des applications .NET Core dans WSL 2 avec Visual Studio.
Note
Pour déboguer Linux s’exécutant sur Azure Kubernetes Service (AKS), Bridge to Kubernetes est recommandé au lieu de l’attacher au processus.
Prerequisites
Sur le serveur Linux, vous devez installer le serveur SSH, décompresser et installer avec curl ou wget. Par exemple, sur Ubuntu, vous pouvez le faire en exécutant :
sudo apt-get install openssh-server unzip curlSFTP doit être activé ainsi que SSH. La plupart des distributions SSH installent et activent SFTP par défaut, mais ce n’est pas toujours le cas.
Sur le serveur Linux, installez le runtime .NET sur Linux et recherchez la page correspondant à votre distribution Linux (par exemple Ubuntu). Le Kit de développement logiciel (SDK) .NET n’est pas obligatoire.
Pour vous assurer que les services de débogage .NET requis sont disponibles pour le débogage, évitez de publier l’application en tant qu’exécutable à fichier unique.
Pour obtenir des instructions complètes ASP.NET Core, consultez Host ASP.NET Core sur Linux avec Nginx et Host ASP.NET Core sur Linux avec Apache.
Préparer votre application pour le débogage
Envisagez d'employer une configuration de débogage lors de la génération de l'application. Il est plus difficile de déboguer du code compilé au détail (une configuration Release) que du code compilé par débogage. Si vous devez utiliser une configuration Release, désactivez d’abord la fonctionnalité Just My Code. Ouvrez le volet Outils>Options et développez la section Tous les paramètres>Débogage>Général. Décochez la case Activer uniquement mon code .
Envisagez d'employer une configuration de débogage lors de la génération de l'application. Il est plus difficile de déboguer du code compilé au détail (une configuration Release) que du code compilé par débogage. Si vous devez utiliser une configuration Release, désactivez d’abord la fonctionnalité Just My Code. Ouvrez la boîte de dialogueOptions> et développez la section Débogage>général. Décochez la case Activer uniquement mon code .
Assurez-vous que votre projet est configuré pour produire des fichiers PDF portables (qui est le paramètre par défaut) et vérifiez que les fichiers PDF se trouvent dans le même emplacement que la DLL. Pour configurer cela dans Visual Studio, cliquez avec le bouton droit sur le projet, puis choisissezPropriétés>Général>Symboles de débogage.
Assurez-vous que votre projet est configuré pour produire des fichiers PDF portables (qui est le paramètre par défaut) et vérifiez que les fichiers PDF se trouvent dans le même emplacement que la DLL. Pour configurer cela dans Visual Studio, cliquez avec le bouton droit sur le projet, puis choisissez Propriétés>générer> desinformations de débogage>.
Générer et déployer l’application
Vous pouvez utiliser plusieurs méthodes pour déployer l’application avant de commencer le débogage. Par exemple, vous pouvez :
Copiez les sources sur l’ordinateur cible et compilez avec
dotnet buildsur l’ordinateur Linux.Générez l’application sur Windows, puis transférez les artefacts de build sur la machine Linux. (Les artefacts de build se composent de l’application elle-même, des fichiers PDF portables, de toutes les bibliothèques d’exécution dont elle peut dépendre et du fichier .deps.json .)
Une fois l’application déployée, démarrez l’application.
Attachez le débogueur
Lorsque l’application s’exécute sur l’ordinateur Linux, vous êtes prêt à attacher le débogueur.
Dans Visual Studio, choisissez Déboguer>Attacher un processus….
Dans la liste Type de connexion , sélectionnez SSH.
Remplacez la cible de connexion par l’adresse IP ou le nom d’hôte de l’ordinateur cible.
Si vous n’avez pas fourni d’informations d’identification, vous êtes invité à entrer un mot de passe et/ou un fichier de clé privée. Pour plus d’informations sur l’utilisation d’un fichier de clé privée, consultez Configurer une connexion à distance.
Il n’existe aucune configuration requise pour le port, à l’exception du port sur lequel le serveur SSH s’exécute.
Recherchez le processus que vous souhaitez déboguer.
Votre code s’exécute soit dans un nom de processus unique, soit dans un processus nommé dotnet. Pour trouver le processus qui vous intéresse, vérifiez la colonne Titre , qui affiche les arguments de ligne de commande du processus.
Dans l’exemple suivant, vous voyez une liste de processus à partir d’un ordinateur Linux distant sur un transport SSH affiché dans la boîte de dialogue Attacher au processus .
Choisissez Joindre.
Dans la boîte de dialogue qui s’affiche, sélectionnez le type de code que vous souhaitez déboguer. Choisissez Managed (.NET Core pour Unix).
Utilisez les fonctionnalités de débogage de Visual Studio pour déboguer l’application.
Dans l’exemple suivant, vous voyez que le débogueur Visual Studio s’est arrêté à un point d’arrêt dans le code s’exécutant sur une machine Linux distante.