Übung: Anfügen des Visual Studio-Debuggers an eine App Service-Web-App
An diesem Punkt wird die App in Azure bereitgestellt, funktioniert jedoch nicht ordnungsgemäß. Die App funktioniert weiterhin lokal, sodass es ohne weitere Untersuchung schwierig ist, genau zu bestimmen, wodurch das Problem verursacht wird. Mithilfe von Visual Studio können Sie dieses Problem einfach lösen, indem Sie den Debugger an den App Service-Prozess in Azure anfügen. In dieser Übung können Sie die App so debuggen, als ob sie lokal ausgeführt würde.
Hinweis
Vergewissern Sie sich vor dem Versuch, den Debugger anzufügen, immer, dass der Status des lokalen Codes der Bereitstellung in Azure entspricht. Dadurch wird sichergestellt, dass die lokalen Symboldateien und der Quellcode mit der bereitgestellten App übereinstimmen. In einer echten App müssen Sie bei Verwendung von Git zum Verwalten Ihres Projekts denselben Commit oder dasselbe Release auschecken, der/das bereitgestellt wurde.
Konfigurieren von Debugeinstellungen
Schließen Sie unbedingt die folgenden Schritte in Visual Studio ab, bevor Sie eine App in Azure debuggen, damit dies erfolgreich ist.
Vergewissern Sie sich zunächst, dass Sie Ihr Projekt mindestens einmal erfolgreich erstellt haben. Ein erfolgreicher Build stellt sicher, dass der Quellcode und alle erforderlichen kompilierten Dateien einsatzbereit sind. Wenn die Anwendung lokal ausgeführt wird, stellen Sie sicher, dass die App beendet wird.
Navigieren Sie im oberen Visual Studio-Menü zu Debuggen > Optionen. Vergewissern Sie sich, dass Nur eigenen Code aktivieren deaktiviert ist, und wählen Sie dann OK aus.
Wenn Sie diese Einstellung ändern, kann Visual Studio den optimierten Code debuggen, der in Azure mit den erforderlichen Symboldateien aus Ihrem lokalen
bin
-Ordner bereitgestellt wurde. Symboldateien werden vom Debugger als Brücke zwischen kompiliertem, ausführendem Code und dem Quellcode in Visual Studio verwendet, weshalb der lokale Quellcode der bereitgestellten App entsprechen muss.
Anfügen des Debuggers an den App Service
Wählen Sie im Hauptmenü oben in Visual Studio die Option Debuggen > An den Prozess anhängen aus, um das entsprechende Dialogfeld zu öffnen. Mithilfe dieses Fensters können Sie unterschiedliche Ziele verbinden und anfügen. In diesem Fall stellen Sie eine Verbindung mit der App Service-Instanz her, die Sie im vorherigen Schritt erstellt haben.
Wählen Sie im Dropdownmenü Verbindungstyp die Option Microsoft Azure App Services aus.
Wählen Sie neben dem Feld Verbindungsziel die Schaltfläche Suchen... aus, um ein Dialogfeld zu öffnen, über das Sie Ihre Azure-Abonnements und App-Dienste durchsuchen können.
Suchen Sie nach der App Service-Instanz
GitHubBrowser123
, die Sie im vorherigen Schritt erstellt haben, und wählen Sie sie und dann OK aus.Der Prozess
w3wp.exe
sollte in der Liste der verfügbaren Prozesse angezeigt werden, mit denen eine Verbindung hergestellt werden kann. Der Prozess ist der Hauptprozess der Azure App Service-Instanz, von der die bereitgestellte Anwendung gehostet wird. Wählen Sie diesen Prozess aus, und wählen Sie dann unten rechts Anfügen aus, um die Verbindung mit dem Visual Studio-Debugger herzustellen.Wechseln Sie in
Index.cshtml.cs
zur ersten Zeile derOnPost
-Methode, und legen Sie einen Haltepunkt in dieser Methode fest, indem Sie auf den linken Rand klicken. (Klicken Sie alternativ mit der rechten Maustaste, und wählen Sie Haltepunkt>Haltepunkt einfügen aus.)Die Methode
OnPost
innerhalb vonIndex.cshtml.cs
verarbeitet der meisten Logik für die App.Optional können Sie auch überprüfen, ob Visual Studio die Symboldateien für Ihre Debugsitzung geladen hat. Navigieren Sie zu Debuggen > Windows > Module, um das Modulfenster zu öffnen. Dieses Fenster sollte angeben, dass die Symboldateien erfolgreich für die GitHub-Browserdatei
.dll
geladen wurden, nachdem die zuvor vorgenommenen Nur eigenen Code-Konfigurationsänderungen durchgeführt wurden.
Problembehandlung des Fehlers
Nachdem die Symbole geladen wurden, können Sie die in Azure gehostete App wie eine lokale Anwendung debuggen.
Nachdem Sie den Haltepunkt in Visual Studio festgelegt haben, wechseln Sie im Browser zur App, geben im Suchfeld der App den Wert dotnet ein und klicken dann auf Senden. Visual Studio wird den Haltepunkt in der
OnPost
-Methode erreichen. Beim ersten Mal kann die Synchronisierung einen Moment dauern. Der Code versucht, den WertGitHubUrl
mithilfe des DienstsIConfiguration
abzurufen. Standardmäßig werden vom Konfigurationsdienst Werte aus der Dateiappsettings.json
in der App geladen.Verwenden Sie in den Debugsteuerelementen von Visual Studio die Schaltfläche „Überspringen“ (oder drücken Sie F10), um zur Codezeile zu wechseln, durch die die
searchUrl
erstellt wird. Platzieren Sie den Mauszeiger über dergithubUrl
-Variable. Sie sehen, dass der Wert derzeit NULL ist. Dieser Code funktionierte lokal gut. Wieso also ist der Wert in Azure null?Öffnen Sie die Datei
appsettings.json
, um den Sachverhalt weiter zu untersuchen. In dieser Datei gibt es einige Konfigurationseinstellungen im Zusammenhang mit der Protokollierung, aber es lässt sich keinGitHubUrl
-Wert finden.Öffnen Sie die Datei
appsettings.Development.json
.Als Sie das Beispielprojekt einrichten, haben Sie die Konfigurationseinstellungen in
appsettings.Development.json
aktualisiert. Diese Datei enthält Konfigurationen, die nur während der Ausführung im Zuge der Entwicklung angewendet werden, nicht beim Bereitstellen in Azure. Dass vergessen wird, Konfigurationen für die Produktionsversion der gehosteten Anwendung in Azure festzulegen, ist eine häufige Quelle von Fehlern.Kopieren Sie das Schlüsselwertpaar
GitHubUrl
ausappsettings.Development.json
, und fügen Sie es in die Dateiappsettings.json
auf oberster Ebene ein, sodass die beiden Dateien übereinstimmen. Der neue Konfigurationswert wird in der Dateiappsettings.json
mitübertragen, wenn die App wieder in Azure bereitgestellt wird.Ihre Datei
appsettings.json
sollte in etwa wie folgt aussehen.Trennen Sie den Debugger von der App Service-Instanz, indem Sie genau wie bei einer lokalen Debugsitzung oben in Visual Studio auf die Schaltfläche Beenden klicken.
Zum erneuten Bereitstellen der von Ihnen vorgenommenen Änderungen klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf den Projektknoten und wählen wieder Veröffentlichen aus.
Auf dem Bildschirm des Veröffentlichungsprofils sind noch alle ursprünglichen Bereitstellungseinstellungen vorhanden. Klicken Sie also erneut auf Veröffentlichen, um eine erneute Bereitstellung in Azure durchzuführen.
Wenn die Bereitstellung abgeschlossen ist, wird in Visual Studio ein Browser zum erneuten Anzeigen der App gestartet. Geben Sie im Suchformular wieder dotnet ein, und drücken Sie die EINGABETASTE. Eine Liste der Repositorys wird jetzt ordnungsgemäß geladen.
Herzlichen Glückwunsch! Sie haben einen Fehler in Ihrem Azure App Service mit Visual Studio erfolgreich behoben.