Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Ab Visual Studio 2017 können Sie .NET Core- und .NET 5+-Prozesse anfügen, die auf einer lokalen oder Remote-Linux-Bereitstellung über Secure Shell (SSH) ausgeführt werden. In diesem Artikel wird beschrieben, wie Sie das Debuggen einrichten und durchführen. Informationen zum Debuggen von Szenarien mit Docker-Containern finden Sie unter Anfügen an einen Prozess, der auf einem Docker-Container ausgeführt wird sowie die Artikel zu Containertools. Informationen zum Debuggen von Linux unter WSL 2 aus Visual Studio (keine Anfügen an den Prozess) finden Sie unter Debuggen von .NET Core Apps in WSL 2 mit Visual Studio.
Hinweis
Für das Debuggen von Linux, das auf Azure Kubernetes Service (AKS) ausgeführt wird, wird Bridge to Kubernetes empfohlen, anstatt an den Prozess anzufügen.
Voraussetzungen
Auf dem Linux-Server müssen Sie SSH-Server installieren, entpacken und mit curl oder wget installieren. Auf Ubuntu können Sie dies beispielsweise tun, indem Sie Folgendes ausführen:
sudo apt-get install openssh-server unzip curlSFTP muss sowie SSH aktiviert sein. Die meisten SSH-Verteilungen installieren und aktivieren SFTP standardmäßig, aber das ist nicht immer der Fall.
Installieren Sie auf dem Linux-Server die .NET-Laufzeit auf Linux, und suchen Sie die Seite, die Ihrer Linux-Distribution entspricht (z. B. Ubuntu). Das .NET SDK ist nicht erforderlich.
Um sicherzustellen, dass erforderliche .NET-Debuggingdienste zum Debuggen verfügbar sind, vermeiden Sie die Veröffentlichung der Anwendung als ausführbare Datei.
Umfassende ASP.NET Core-Anweisungen finden Sie unter Host ASP.NET Core unter Linux mit Nginx und Host ASP.NET Core unter Linux mit Apache.
Vorbereiten der Anwendung für das Debuggen
Erwägen Sie die Verwendung einer Debugkonfiguration beim Erstellen der Anwendung. Es ist schwieriger, einzelhandelskompilierten Code (eine Releasekonfiguration) zu debuggen als debugkompilierten Code. Wenn Sie eine Release-Konfiguration verwenden müssen, deaktivieren Sie zuerst das Feature "Nur Mein Code". Öffnen Sie den Bereich "Extras>Optionen ", und erweitern Sie den Abschnitt "Alle Einstellungen>Debuggen>Allgemein ". Deaktivieren Sie das Kontrollkästchen "Nur meinen Code aktivieren ".
Erwägen Sie die Verwendung einer Debugkonfiguration beim Erstellen der Anwendung. Es ist schwieriger, einzelhandelskompilierten Code (eine Releasekonfiguration) zu debuggen als debugkompilierten Code. Wenn Sie eine Release-Konfiguration verwenden müssen, deaktivieren Sie zuerst das Feature "Nur Mein Code". Öffnen Sie das Dialogfeld "Extras>optionen ", und erweitern Sie den Abschnitt "Debugging>General ". Deaktivieren Sie das Kontrollkästchen "Nur meinen Code aktivieren ".
Stellen Sie sicher, dass Ihr Projekt so konfiguriert ist, dass tragbare PDBs (die Standardeinstellung) erzeugt werden, und stellen Sie sicher, dass sich die PDBs an demselben Speicherort wie die DLL befinden. Um dies in Visual Studio zu konfigurieren, klicken Sie mit der rechten Maustaste auf das Projekt, und wählen Sie dann Eigenschaften>Allgemein>Debug-Symbole aus.
Stellen Sie sicher, dass Ihr Projekt so konfiguriert ist, dass tragbare PDBs (die Standardeinstellung) erzeugt werden, und stellen Sie sicher, dass sich die PDBs an demselben Speicherort wie die DLL befinden. Um dies in Visual Studio zu konfigurieren, klicken Sie mit der rechten Maustaste auf das Projekt, und wählen Sie dann "Eigenschaften>erstellen>erweiterte>Debuginformationen" aus.
Erstellen und Bereitstellen der Anwendung
Sie können mehrere Methoden verwenden, um die App bereitzustellen, bevor Sie mit dem Debuggen beginnen. Beispielsweise können Sie folgende Aktionen ausführen:
Kopieren Sie Quellcode auf den Zielcomputer und bauen Sie ihn mit
dotnet buildauf dem Linux-Computer.Erstellen Sie die App unter Windows, und übertragen Sie dann die Buildartefakte auf den Linux-Computer. (Die Buildartefakte bestehen aus der Anwendung selbst, den portablen PDBs, allen Laufzeitbibliotheken, von denen es abhängig sein kann, und der .deps.json Datei.)
Wenn die App bereitgestellt wird, starten Sie die Anwendung.
Anfügen des Debuggers
Wenn die Anwendung auf dem Linux-Computer ausgeführt wird, können Sie den Debugger anfügen.
Wählen Sie in Visual Studio Debug>"An Prozess anfügen…" aus.
Wählen Sie in der Liste "Verbindungstyp " SSH aus.
Ändern Sie das Verbindungsziel in die IP-Adresse oder den Hostnamen des Zielcomputers.
Wenn Sie keine Anmeldeinformationen angegeben haben, werden Sie aufgefordert, ein Kennwort und/oder eine private Schlüsseldatei einzugeben. Weitere Informationen zur Verwendung einer Privaten Schlüsseldatei finden Sie unter Einrichten einer Remoteverbindung.
Es gibt keine Portanforderungen für die Konfiguration, mit Ausnahme des Ports, auf dem der SSH-Server ausgeführt wird.
Suchen Sie den Prozess, den Sie debuggen möchten.
Ihr Code wird entweder in einem eindeutigen Prozessnamen oder in einem Prozess namens dotnet ausgeführt. Um den gewünschten Prozess zu finden, überprüfen Sie die Spalte "Titel ", in der die Befehlszeilenargumente für den Prozess angezeigt werden.
Im folgenden Beispiel sehen Sie eine Liste von Prozessen eines Remote-Linux-Computers, die über einen SSH-Transport im Dialogfeld An Prozess anfügen angezeigt wird.
Wählen Sie an und fügen Siean.
Wählen Sie im daraufhin angezeigten Dialogfeld den Codetyp aus, den Sie debuggen möchten. Wählen Sie verwaltet (.NET Core für Unix) aus.
Verwenden Sie Visual Studio-Debuggingfeatures, um die App zu debuggen.
Im folgenden Beispiel wird der Visual Studio-Debugger an einem Haltepunkt im Code angehalten, der auf einem Remote-Linux-Computer ausgeführt wird.