Debuggen eines Azure Cloud Services -Diensts (erweiterter Support) in Visual Studio
Visual Studio bietet verschiedene Optionen zum Debuggen von Azure Cloud Services (erweiterter Support) und virtuellen Computern.
Voraussetzungen
- Visual Studio (siehe [Visual Studio-Downloads](https://visualstudio.microsoft.com/downloads/?cid=learn-onpage-download-cta)) mit der installierten Arbeitsauslastung Azure-Entwicklung und den installierten Einzelkomponenten Projekt- und Elementvorlagen für .NET Framework. Weitere Informationen finden Sie im Artikel Ändern von Visual Studio durch Hinzufügen oder Entfernen von Arbeitsauslastungen und Komponenten.
- Ein Azure-Konto. Wenn Sie nicht über ein Azure-Konto verfügen, aktivieren Sie Ihre Azure-Vorteile für Visual Studio-Abonnierende, oder registrieren Sie sich für eine kostenlose Testversion.
Debuggen des Clouddiensts auf Ihrem lokalen Computer
Sie können Zeit und Geld sparen, indem Sie den Azure Compute Emulator verwenden, um Ihren Clouddienst auf einem lokalen Computer zu debuggen. Indem Sie einen Dienst lokal debuggen, bevor Sie ihn bereitstellen, können Sie Zuverlässigkeit und Leistung verbessern, ohne die Berechnungszeit zu bezahlen. Einige Fehler können jedoch nur auftreten, wenn Sie einen Clouddienst in Azure selbst ausführen. Sie können diese Fehler debuggen, wenn Sie das Remotedebugging aktivieren, wenn Sie Ihren Dienst veröffentlichen und dann den Debugger an eine Rolleninstanz anfügen.
Der Emulator simuliert den Azure Compute-Dienst und wird in Ihrer lokalen Umgebung ausgeführt, sodass Sie Ihren Clouddienst testen und debuggen können, bevor Sie ihn bereitstellen. Der Emulator behandelt den Lebenszyklus Ihrer Rolleninstanzen und bietet Zugriff auf simulierte Ressourcen, z. B. lokalen Speicher. Wenn Sie Ihren Dienst aus Visual Studio debuggen oder ausführen, startet er den Emulator automatisch als Hintergrundanwendung und stellt ihren Dienst dann im Emulator bereit. Sie können den Emulator verwenden, um Ihren Dienst anzuzeigen, wenn er in der lokalen Umgebung ausgeführt wird. Sie können die Vollversion oder die Expressversion des Emulators ausführen. Weitere Informationen finden Sie unter Verwenden von Emulator Express zum lokalen Ausführen und Debuggen eines Clouddiensts.
So debuggen Sie Ihren Clouddienst auf Ihrem lokalen Computer
Wählen Sie auf der Menüleiste Debuggen>Debuggen starten aus, um das Azure-Clouddienstprojekt (erweiterter Support) auszuführen. Alternativ können Sie F5 drücken. Es wird eine Meldung angezeigt, dass der Compute-Emulator gestartet wird. Wenn der Emulator gestartet wird, bestätigt das Systemtray-Symbol dies.
Zeigen Sie die Benutzeroberfläche für den Computeemulator an, indem Sie das Kontextmenü für das Azure-Symbol im Infobereich öffnen, und wählen Sie dann Compute-Emulator-UI anzeigenaus.
Im linken Bereich der Benutzeroberfläche werden die Dienste angezeigt, die derzeit im Computeemulator bereitgestellt werden, und die Rolleninstanzen, die für jeden Dienst ausgeführt werden. Sie können den Dienst oder die Rollen auswählen, um Lebenszyklus-, Protokollierungs- und Diagnoseinformationen im rechten Bereich anzuzeigen. Wenn Sie den Fokus am oberen Rand eines enthaltenen Fensters platzieren, wird er erweitert, um den rechten Bereich auszufüllen.
Durchlaufen Sie die Anwendung, indem Sie Befehle im Menü Debuggen auswählen und Haltepunkte in Ihrem Code festlegen. Während Sie die Anwendung im Debugger durchlaufen, werden die Bereiche mit dem aktuellen Status der Anwendung aktualisiert. Wenn Sie das Debuggen beenden, wird die Anwendungsbereitstellung gelöscht. Wenn Ihre Anwendung eine Webrolle enthält und Sie die Startaktionseigenschaft so festgelegt haben, dass der Webbrowser gestartet wird, startet Visual Studio Ihre Webanwendung im Browser. Wenn Sie die Anzahl der Instanzen einer Rolle in der Dienstkonfiguration ändern, müssen Sie den Clouddienst beenden und dann das Debuggen neu starten, damit Sie diese neuen Instanzen der Rolle debuggen können.
Anmerkung
Wenn Sie das Ausführen oder Debuggen Ihres Diensts beenden, werden der lokale Computeemulator und der Speicheremulator nicht beendet. Sie müssen explizit über den Infobereich beendet werden.
Debuggen eines Clouddiensts in Azure
Wenn Sie das Remotedebugging für einen Clouddienst mithilfe des Verfahrens in diesem Abschnitt aktivieren, gibt es keine beeinträchtigte Leistung oder zusätzliche Gebühren. Verwenden Sie kein Remotedebugging für einen Produktionsdienst, da Clients, die den Dienst verwenden, möglicherweise nachteilig betroffen sind.
So aktivieren Sie das Remotedebugging für einen Clouddienst (erweiterter Support)
Fügen Sie einen Endpunkt zum ServiceDefinition.csdef für den standardmäßigen msvsmon-Port hinzu. Für Visual Studio 2019 ist es 4024.
<Endpoints> <InputEndpoint name="RemoteDebug" protocol="tcp" port="4024" localPort="4024" /> </Endpoints>
Anmerkung
Andere Versionen von Visual Studio weisen unterschiedliche Ports auf (Remotedebugger-Portzuweisungen).
Öffnen Sie das Rechtsklick-Menü für das Azure-Projekt, und wählen Sie dann Veröffentlichenaus.
Wählen Sie die Staging--Umgebung und die konfiguration Debuggen aus.
Dies ist nur eine Richtlinie. Sie können ihre Testumgebungen in einer Produktionsumgebung ausführen. Sie können sich jedoch negativ auf Benutzer auswirken, wenn Sie das Remotedebugging in der Produktionsumgebung aktivieren. Sie können die Release-Konfiguration auswählen, aber die Debugkonfiguration erleichtert das Debuggen.
Führen Sie die gängigen Schritte aus, die unter Cloud Services (erweiterter Support) beschrieben werden. Aktivieren Sie jedoch das Kontrollkästchen Remotedesktop für alle Rollen aktivieren.
Sie werden aufgefordert, einen Benutzernamen und ein Kennwort für den Remotedesktopbenutzer zu erstellen, den Sie später bei diesem virtuellen Computer anmelden müssen.
Wechseln Sie zum nächsten Bildschirm, überprüfen Sie Ihre Einstellungen, und klicken Sie auf Veröffentlichen. Warten Sie, bis die Bereitstellung abgeschlossen ist.
Melden Sie sich bei Azure-Portal an, und navigieren Sie zum Clouddienst (erweiterter Support), den Sie debuggen möchten.
Wählen Sie im linken Bereich Rollen und Instanzen aus, dann wählen Sie die Rolle aus, die Sie remote debuggen möchten.
Klicken Sie auf Verbinden im Popup Rolleninstanz auf der rechten Seite, und wählen Sie die Schaltfläche Verbinden aus, um eine Remotedesktopdatei herunterzuladen, mit der Sie sich beim virtuellen Computer anmelden können. Melden Sie sich mit den Anmeldeinformationen an, die Sie beim Aktivieren des Remotedesktops in einem vorherigen Schritt erstellt haben.
Installieren Sie auf dem virtuellen Remotecomputer von Azure die Visual Studio 2019-Remotetools, wie unter Remotedebuggingbeschrieben.
Führen Sie auf dem Desktop auf dem virtuellen Computer den Befehl D:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\Remote Debugger\x64\msvsmon.exeaus. Stellen Sie sicher, dass Sie das Programm als Administrator ausführen.
Akzeptieren Sie Aufforderungen, um den Zugriff über die Firewall zuzulassen. Es sollte eine Meldung angezeigt werden, die angibt, dass msvsmon.exe mit dem Lauschen auf Verbindungen begonnen hat.
Öffnen Sie im Azure-Portal die Ressourcengruppe, und rufen Sie die öffentliche IP-Adresse für den Clouddienst ab (erweiterter Support).
So fügen Sie den Debugger an einen Clouddienst (erweiterten Support) in Azure an
Anmerkung
Wenn möglich, sollten Sie mit der Konfiguration Debug debuggen, die im Prozess Veröffentlichen ausgewählt wurde, aber wenn Sie eine Release--Konfiguration debuggen, verwenden Sie in Visual Studio STRG+Q, um nach "Nur meinen Code" zu suchen, und deaktivieren Sie "Nur meinen Code aktivieren" in Tools>Optionen>Debugger>Allgemein. Releasebuilds sind optimiert und gelten daher nicht als "Mein Code".
Wählen Sie Debuggen>An Prozess anhängen aus (oder drücken Sie Strg+Alt+P).
Behalten Sie den Verbindungstyp Standard bei.
Geben Sie das Verbindungsziel mit Ihrer IP-Adresse und Ihrem Port ein:
{ipaddress}:4024
.Legen Sie Anfügen an auf Automatisch fest.
Melden Sie sich mit denselben Anmeldeinformationen wie der Remotedesktopbenutzer an.
Wählen Sie Prozess für alle Benutzer anzeigen aus. Wenn Sie eine Workerrolle debuggen, fügen Sie WaWorkerHost.exean; Wenn Sie eine Webrolle debuggen, fügen Sie den w3wp.exe Prozess an; für eine Web-API-Rolle ist dies WaIISHost.exe.
Legen Sie Haltepunkte fest (navigieren Sie zur Zeile, und drücken Sie F9), greifen Sie auf die öffentliche URL der Website zu, und reproduzieren Sie das zu debuggende Szenario.
So aktivieren Sie das Remotedebugging für einen Clouddienst (erweiterter Support)
Fügen Sie einen Endpunkt zum ServiceDefinition.csdef für den standardmäßigen msvsmon-Port hinzu. Für Visual Studio 2022 ist das 4026; für Visual Studio 2019 ist es 4024.
<Endpoints> <InputEndpoint name="RemoteDebug" protocol="tcp" port="4026" localPort="4026" /> </Endpoints>
Anmerkung
Andere Versionen von Visual Studio weisen unterschiedliche Ports auf (Remotedebugger-Portzuweisungen).
Wenn Sie auf .NET 4.8 abzielen, öffnen Sie unbedingt die datei ServiceConfiguration.Cloud.cscfg Datei, und überprüfen Sie den Wert des attributs
osFamily
für dasServiceConfiguration
-Element beim Veröffentlichen von Cloud Services (erweiterter Support). Verwenden Sie für ein .NET 4.8-ProjektosFamily="7"
.Öffnen Sie das Kontextmenü des Azure-Projekts, und klicken Sie auf Veröffentlichen.
Wählen Sie die Staging--Umgebung und die konfiguration Debuggen aus.
Dies ist nur eine Richtlinie. Sie können ihre Testumgebungen in einer Produktionsumgebung ausführen. Sie können sich jedoch negativ auf Benutzer auswirken, wenn Sie das Remotedebugging in der Produktionsumgebung aktivieren. Sie können die Release-Konfiguration auswählen, aber die Debugkonfiguration erleichtert das Debuggen.
Führen Sie die gängigen Schritte aus, die unter Cloud Services (erweiterter Support) beschrieben werden. Aktivieren Sie jedoch das Kontrollkästchen Remotedesktop für alle Rollen aktivieren.
Sie werden aufgefordert, einen Benutzernamen und ein Kennwort für den Remotedesktopbenutzer zu erstellen, den Sie später bei diesem virtuellen Computer anmelden müssen.
Wechseln Sie zum nächsten Bildschirm, überprüfen Sie Ihre Einstellungen, und klicken Sie auf Veröffentlichen. Warten Sie, bis die Bereitstellung abgeschlossen ist.
Melden Sie sich bei Azure-Portal an, und navigieren Sie zum Clouddienst (erweiterter Support), den Sie debuggen möchten.
Wählen Sie in der linken Leiste Rollen und Instanzen aus und wählen Sie dann die Rolle aus, die Sie remote debuggen möchten.
Klicken Sie auf Verbinden im Popup Rolleninstanz auf der rechten Seite, und wählen Sie die Schaltfläche Verbinden aus, um eine Remotedesktopdatei herunterzuladen, mit der Sie sich beim virtuellen Computer anmelden können. Melden Sie sich mit den Anmeldeinformationen an, die Sie beim Aktivieren des Remotedesktops in einem vorherigen Schritt erstellt haben.
Installieren Sie auf dem virtuellen Remotecomputer von Azure die Visual Studio 2022-Remotetools, wie unter Remotedebuggingbeschrieben.
Führen Sie auf dem Desktop auf dem virtuellen Computer den Befehl msvsmon.exe im Visual Studio-Installationsordner unter
Common7\IDE\Remote Debugger\x64
aus. Stellen Sie sicher, dass Sie ihn als Administrator ausführen.Akzeptieren Sie Aufforderungen, um den Zugriff über die Firewall zuzulassen. Es sollte eine Meldung angezeigt werden, die angibt, dass msvsmon.exe mit dem Lauschen auf Verbindungen begonnen hat.
Öffnen Sie im Azure-Portal die Ressourcengruppe, und rufen Sie die öffentliche IP-Adresse für den Clouddienst ab (erweiterter Support).
So fügen Sie den Debugger an einen Clouddienst (erweiterten Support) in Azure an
Anmerkung
Wenn möglich, sollten Sie mit der Konfiguration Debug debuggen, die im Prozess Veröffentlichen ausgewählt wurde, wenn Sie jedoch eine Release--Konfiguration debuggen, verwenden Sie in Visual Studio STRG+Q, um nach "Nur meinen Code" zu suchen, und deaktivieren Sie "Nur meinen Code aktivieren" in Tools>Optionen>Debugger>Allgemein. Releasebuilds sind optimiert und gelten daher nicht als "Mein Code".
Wählen Sie Debuggen>An den Prozess anhängen (oder drücken Sie STRG+ALT+P).
Behalten Sie den Verbindungstyp Standard bei.
Geben Sie das Verbindungsziel mit Ihrer IP-Adresse und Ihrem Port ein:
{ipaddress}:4026
.Legen Sie Anfügen an auf Automatisch fest.
Melden Sie sich mit denselben Anmeldeinformationen wie der Remotedesktopbenutzer an.
Wählen Sie Prozess für alle Benutzer anzeigen aus. Wenn Sie eine Workerrolle debuggen, fügen Sie WaWorkerHost.exean; Wenn Sie eine Webrolle debuggen, fügen Sie den w3wp.exe Prozess an; für eine Web-API-Rolle ist dies WaIISHost.exe.
Setzen Sie Haltepunkte (navigieren Sie zur Zeile und drücken Sie F9), greifen Sie auf die öffentliche URL der Website zu und reproduzieren Sie das Szenario zum Debuggen.
Einschränkungen des Remotedebuggings in Azure
Das Remotedebugging hat die folgenden Einschränkungen:
Wenn das Remotedebugging aktiviert ist, können Sie keinen Clouddienst veröffentlichen, in dem jede Rolle über mehr als 25 Instanzen verfügt.
Der Debugger verwendet Ports 30400 bis 30424, 31400 bis 31424 und 32400 bis 32424. Wenn Sie versuchen, einen dieser Ports zu verwenden, können Sie Ihren Dienst nicht veröffentlichen, und eine der folgenden Fehlermeldungen wird im Aktivitätsprotokoll für Azure angezeigt:
- Fehler beim Überprüfen der .cscfg-Datei im Vergleich zur .csdef-Datei.
Der reservierte Portbereich „Bereich“ für den Endpunkt
Microsoft.WindowsAzure.PlugIns.RemoteDebugger.Connector
der Rolle „Rolle“ überschneidet sich mit einem bereits definierten Port oder Bereich. - Fehler bei der Zuordnung. Versuchen Sie es später erneut, die Größe des virtuellen Computers oder die Anzahl der Rolleninstanzen zu verringern, oder versuchen Sie, die Bereitstellung in einer anderen Region auszuführen.
- Fehler beim Überprüfen der .cscfg-Datei im Vergleich zur .csdef-Datei.
Der reservierte Portbereich „Bereich“ für den Endpunkt
Debuggen von Azure App Service
Sie können Programme debuggen, die in Azure App Service ausgeführt werden, indem Sie das Dialogfeld "An Prozess anhängen" in Visual Studio verwenden.
Anmerkung
Dies ist nur für Azure App Service ab Visual Studio 2022 17.1 verfügbar.
So debuggen Sie einen Windows Azure App Service
Wählen Sie unter Debuggen An Prozess anhängen aus.
Ändern Sie Verbindungstyp in Microsoft Azure App Services, und wählen Sie dann Suchen...aus.
Wählen Sie im daraufhin geöffneten Dialogfeld den Abonnementnamen aus.
Anmerkung
Sie müssen bei einem Microsoft-Konto mit Zugriff auf das Abonnement angemeldet sein, das Ihren Azure App Service enthält.
Filtern Sie die Ansicht entweder nach Ressourcengruppe oder Ressourcentyp, oder suchen Sie nach Name.
Wählen Sie als Nächstes den App-Dienst aus, den Sie debuggen möchten, und wählen Sie dann OKaus.
Dies ermöglicht das Remotedebugging in Ihrem App-Dienst und zeigt eine Liste der verfügbaren Prozesse an, an die sie angefügt werden können.
Wählen Sie den Prozess aus, an den Sie anfügen möchten, und wählen Sie dann Anfügen aus, um mit dem Debuggen zu beginnen.
Debuggen virtueller Azure-Computer
Sie können Programme debuggen, die auf virtuellen Azure-Computern ausgeführt werden, indem Sie den Server-Explorer in Visual Studio verwenden. Wenn Sie das Remotedebugging auf einem virtuellen Azure-Computer aktivieren, installiert Azure die Remotedebuggingerweiterung auf dem virtuellen Computer. Anschließend können Sie Prozesse auf dem virtuellen Computer anfügen und wie gewohnt debuggen.
Anmerkung
Virtuelle Computer, die über den Azure Resource Manager-Stapel erstellt werden, können mithilfe von Cloud Explorer in Visual Studio 2019 remote gedebuggt werden. Weitere Informationen finden Sie unter Verwalten von Azure-Ressourcen mit Cloud Explorer.
So debuggen Sie einen virtuellen Azure-Computer
Erweitern Sie im Server-Explorer den Knoten "Virtuelle Computer", und wählen Sie den Knoten des virtuellen Computers aus, den Sie debuggen möchten.
Öffnen Sie das Kontextmenü, und wählen Sie Debugging aktivierenaus. Wenn Sie gefragt werden, ob Sie das Debuggen auf dem virtuellen Computer aktivieren möchten, wählen Sie Jaaus.
Azure installiert die Remotedebuggingerweiterung auf dem virtuellen Computer, um das Debuggen zu aktivieren.
Öffnen Sie nach Abschluss der Installation der Remotedebuggingerweiterung das Kontextmenü des virtuellen Computers, und wählen Sie Debugger anfügen...
Azure ruft eine Liste der Prozesse auf dem virtuellen Computer ab und zeigt diese im Dialogfeld An den Prozess anhängen an.
Wählen Sie im Dialogfeld An den Prozess anhängen die Option Auswählen, um die Ergebnisliste so einzuschränken, dass nur die Codearten angezeigt werden, die Sie debuggen möchten. Sie können verwalteten 32-Bit- oder 64-Bit-Code, systemeigenen Code oder beides debuggen.
Wählen Sie die Prozesse aus, die Sie auf dem virtuellen Computer debuggen möchten, und wählen Sie dann Anfügenaus. Sie können z. B. den w3wp.exe Prozess auswählen, wenn Sie eine Web-App auf dem virtuellen Computer debuggen möchten. Weitere Informationen finden Sie unter Debuggen eines oder mehrerer Prozesse in Visual Studio und Azure Role Architecture.
Erstellen eines Webprojekts und eines virtuellen Computers zum Debuggen
Bevor Sie Ihr Azure-Projekt veröffentlichen, ist es möglicherweise hilfreich, es in einer enthaltenen Umgebung zu testen, die Debugging- und Testszenarien unterstützt und wo Sie Test- und Überwachungsprogramme installieren können. Eine Möglichkeit zum Ausführen solcher Tests besteht darin, Ihre App remote auf einem virtuellen Computer zu debuggen.
Visual Studio ASP.NET Projekte bieten eine Option zum Erstellen eines praktischen virtuellen Computers, den Sie zum Testen von Apps verwenden können. Der virtuelle Computer enthält häufig benötigte Endpunkte wie PowerShell, Remotedesktop und WebDeploy.
So erstellen Sie ein Webprojekt und einen virtuellen Computer zum Debuggen
Erstellen Sie in Visual Studio eine neue ASP.NET Webanwendung.
Wählen Sie im Dialogfeld „Neues ASP.NET-Projekt“ im Abschnitt „Azure“ im Dropdownlistenfeld Virtueller Computer aus. Lassen Sie das Kontrollkästchen Remoteressourcen erstellen aktiviert. Wählen Sie OK aus, um fortzufahren.
Das Dialogfeld Erstellen eines virtuellen Computers auf Azure wird angezeigt.
Anmerkung
Sie werden aufgefordert, sich bei Ihrem Azure-Konto anzumelden, wenn Sie noch nicht angemeldet sind.
Wählen Sie die verschiedenen Einstellungen für den virtuellen Computer und dann OKaus. Weitere Informationen finden Sie unter Virtuelle Maschinen.
Der Name, den Sie für DNS-Namen eingeben, ist der Name des virtuellen Computers.
Azure erstellt den virtuellen Computer und stellt dann die Endpunkte bereit und konfiguriert sie, z. B. Remotedesktop und Web Deploy.
Nachdem der virtuelle Computer vollständig konfiguriert wurde, wählen Sie den Knoten des virtuellen Computers im Server-Explorer aus.
Öffnen Sie das Kontextmenü, und wählen Sie Debugging aktivierenaus. Wenn Sie gefragt werden, ob Sie das Debuggen auf dem virtuellen Computer aktivieren möchten, wählen Sie Jaaus.
Azure installiert die Remotedebuggingerweiterung auf dem virtuellen Computer, um das Debuggen zu aktivieren.
Veröffentlichen Sie Ihr Projekt wie in How to: Deploy a Web Project Using One-Click Publish in Visual Studiobeschrieben. Da Sie auf dem virtuellen Computer debuggen möchten, wählen Sie auf der Seite Einstellungen des Assistenten Web veröffentlichen als Konfiguration Debuggen aus. Dadurch wird sichergestellt, dass Codesymbole beim Debuggen verfügbar sind.
Wählen Sie Zusätzliche Dateien am Ziel entfernen in den Dateiveröffentlichungsoptionen aus, wenn das Projekt zu einem früheren Zeitpunkt bereits bereitgestellt wurde.
Nachdem das Projekt veröffentlicht wurde, wählen Sie im Kontextmenü des virtuellen Computers im Server-Explorer Debugger anfügen...
Azure ruft eine Liste der Prozesse auf dem virtuellen Computer ab und zeigt diese im Dialogfeld An den Prozess anhängen an.
Klicken Sie im Dialogfeld An den Prozess anhängen auf Auswählen, um die Ergebnisliste einzuschränken, sodass nur die Codetypen angezeigt werden, die Sie debuggen möchten. Sie können verwalteten 32-Bit- oder 64-Bit-Code, systemeigenen Code oder beides debuggen.
Wählen Sie die Prozesse aus, die Sie auf dem virtuellen Computer debuggen möchten, und wählen Sie dann Anfügenaus. Sie können z. B. den w3wp.exe Prozess auswählen, wenn Sie eine Web-App auf dem virtuellen Computer debuggen möchten. Weitere Informationen finden Sie unter Debuggen eines oder mehrerer Prozesse in Visual Studio.
Verwandte Inhalte
Verwenden Sie Azure Diagnostics, um detaillierte Informationen aus Code zu protokollieren, der in Rollen ausgeführt wird, in Azure. Siehe Sammeln von Protokollierungsdaten mithilfe von Azure Diagnostics.
Weitere Remotedebuggingszenarien finden Sie unter Remotedebugging-.