Freigeben über


Debuggen von Live-ASP.NET Azure-Apps mithilfe des Snapshot-Debuggers

Hinweis

Das Momentaufnahmendebugging ist veraltet und ist in den neuesten Versionen von Visual Studio 2022 und höheren Versionen nicht mehr verfügbar. Es gibt zwar keinen genauen Ersatz, aber es gibt andere Tools, die hilfreiche Diagnose bereitstellen können:

Der Snapshot-Debugger erstellt eine Momentaufnahme Ihrer Produktionsanwendungen, wenn Code ausgeführt wird, an dem Sie interessiert sind. Um den Debugger anzuweisen, eine Momentaufnahme zu erstellen, legen Sie Snappoints und Logpoints in Ihrem Code fest. Mit dem Debugger können Sie genau sehen, was nicht geklappt hat, ohne den Datenverkehr Ihrer Produktionsanwendung zu beeinträchtigen. Der Momentaufnahmedebugger kann Ihnen helfen, die Zeit zu reduzieren, die benötigt wird, um Probleme zu beheben, die in Produktionsumgebungen auftreten.

Andockpunkte und Protokollpunkte ähneln Haltepunkten, aber im Gegensatz zu Haltepunkten halten Andockpunkte die Anwendung nicht an, wenn sie erreicht werden. In der Regel dauert das Aufzeichnen einer Momentaufnahme an einem Snappoint 10-20 Millisekunden.

In diesem Tutorial werden Sie Folgendes lernen:

  • Starten des Snapshot-Debuggers
  • Festlegen eines Snappoints und Anzeigen einer Momentaufnahme
  • Festlegen eines Logpoints

Voraussetzungen

  • Snapshot Debugger ist nur ab Visual Studio 2017 Enterprise, Version 15.5 oder höher, mit der Azure-Entwicklungsarbeitslast verfügbar. (Auf der Registerkarte "Einzelne Komponenten" finden Sie sie unter "Debuggen und Testen>".Snapshot-Debugger.)

    Wenn sie noch nicht installiert ist, installieren Sie Visual Studio 2019. Wenn Sie eine Aktualisierung von einer vorherigen Visual Studio-Installation durchführen, führen Sie das Visual Studio-Installationsprogramm aus, und überprüfen Sie die Snapshot-Debugger-Komponente in der Arbeitslast ASP.NET und Webentwicklung.

  • Einfacher oder höherer Azure App Service-Plan.

  • Snapshot-Sammlung ist für die folgenden Web-Apps verfügbar, die in Azure App Service ausgeführt werden:

    • ASP.NET Anwendungen, die auf .NET Framework 4.6.1 oder höher ausgeführt werden.
    • ASP.NET Core-Anwendungen, die unter .NET Core 2.0 oder höher unter Windows ausgeführt werden.

Öffnen Sie Ihr Projekt, und starten Sie den Snapshot-Debugger.

  1. Öffnen Sie das Projekt, das Sie zum Debuggen von Momentaufnahmen erstellen möchten.

    Von Bedeutung

    Zum Momentaufnahmedebugging müssen Sie dieselbe Version des Quellcodes öffnen, der in Ihrem Azure App Service veröffentlicht wird.

  2. Wählen Sie debug > Attach Snapshot Debugger... aus. Wählen Sie den Azure App Service aus, in dem Ihr Projekt bereitgestellt wird, und ein Azure-Speicherkonto, und klicken Sie dann auf "Anfügen". Snapshot Debugger unterstützt auch Azure Kubernetes Service und Azure Virtual Machines (VM) & VM Scale Sets.

    Starten des Momentaufnahmedebuggers über das Menü

    Azure-Ressource auswählen

    Von Bedeutung

    Wenn Sie Snapshot-Debugger anhängen zum ersten Mal auswählen, werden Sie aufgefordert, die Snapshot-Debugger-Websiteerweiterung in Ihrem Azure App Service zu installieren. Für diese Installation ist ein Neustart Ihres Azure App Service erforderlich.

    Hinweis

    (Visual Studio 2019, Version 16.2 und höher) Der Snapshotdebugger hat die Azure-Cloudunterstützung aktiviert. Stellen Sie sicher, dass sowohl das von Ihnen ausgewählte Azure-Ressourcen- als auch das Azure Storage-Konto aus derselben Cloud stammen. Wenden Sie sich an Ihren Azure-Administrator, wenn Sie Fragen zu den Azure-Compliancekonfigurationen Ihres Unternehmens haben.

    Visual Studio befindet sich jetzt im Momentaufnahmedebuggingmodus. Schnappschuss-Debugging-Modus

    Im Fenster "Module" wird angezeigt, wenn alle Module für den Azure App Service geladen wurden (wählen Sie "Windows-Module > debuggen>" aus, um dieses Fenster zu öffnen).

    Überprüfen des Modulfensters

Fangpunkt festlegen

  1. Klicken Sie im Code-Editor auf den linken Randbereich neben der Codezeile, die Sie interessiert, um einen Snappoint festzulegen. Stellen Sie sicher, dass der Code ausgeführt wird, den Sie kennen.

    Festlegen eines Andockpunkts

  2. Klicken Sie auf "Sammlung starten" , um den Andockpunkt zu aktivieren.

    Aktivieren des Andockpunkts

    Tipp

    Sie können keinen Schritt ausführen, wenn Sie eine Momentaufnahme anzeigen, aber Sie können mehrere Snappoints in Ihrem Code platzieren, um die Ausführung an verschiedenen Codezeilen zu verfolgen. Wenn Sie in Ihrem Code über mehrere Snappoints verfügen, stellt der Snapshot-Debugger sicher, dass die entsprechenden Momentaufnahmen aus derselben Endbenutzersitzung stammen. Der Momentaufnahmedebugger führt dies auch dann aus, wenn viele Benutzer auf Ihre App stoßen.

Momentaufnahme erstellen

Sobald ein Snappoint festgelegt ist, können Sie entweder manuell eine Momentaufnahme generieren, indem Sie zur Browseransicht Ihrer Website wechseln und die Codezeile ausführen, die markiert ist, oder warten, bis Ihre Benutzer eine aus ihrer Nutzung der Website generieren.

Begutachten der Momentaufnahmedaten

  1. Wenn der Schnappschusspunkt erreicht wird, erscheint eine Momentaufnahme im Fenster "Diagnosewerkzeuge". Um dieses Fenster zu öffnen, wählen Sie Debug > Fenster > Diagnosetools anzeigen.

    Öffnen eines Andockpunkts

  2. Doppelklicken Sie auf den Snappoint, um die Momentaufnahme im Code-Editor zu öffnen.

    Momentaufnahmedaten überprüfen

    In dieser Ansicht können Sie mit dem Mauszeiger über Variablen fahren, um Datentipps anzuzeigen, die Fenster Locals, Überwachungen und Aufrufstapel verwenden und Ausdrücke auswerten.

    Die Website selbst ist noch live und Endbenutzer sind nicht betroffen. Standardmäßig wird nur eine Momentaufnahme pro Snappoint erfasst. Nachdem eine Momentaufnahme erfasst wurde, wird der Snappoint deaktiviert. Wenn Sie eine weitere Momentaufnahme am Snappoint erfassen möchten, können Sie den Andockpunkt wieder aktivieren, indem Sie auf "Sammlung aktualisieren" klicken.

Sie können Ihrer App auch weitere Snappoints hinzufügen und sie mit der Schaltfläche Update Collection aktivieren.

Benötigen Sie Hilfe? Sehen Sie die Seiten Problembehandlung und bekannte Probleme sowie das FAQ für Momentaufnahmendebugging.

Festlegen eines bedingten Andockpunkts

Wenn es schwierig ist, einen bestimmten Zustand in Ihrer App neu zu erstellen, erwägen Sie die Verwendung eines bedingten Snappoints. Mit bedingten Schnappschusspunkten können Sie steuern, wann eine Momentaufnahme erstellt werden soll, z. B. wenn eine Variable einen bestimmten Wert enthält, den Sie überprüfen möchten. Sie können Bedingungen mithilfe von Ausdrücken, Filtern oder Trefferanzahlen festlegen.

So erstellen Sie einen bedingten Andockpunkt

  1. Klicken Sie mit der rechten Maustaste auf ein Andockpunktsymbol (die hohle Kugel), und wählen Sie "Einstellungen" aus.

    Einstellungen auswählen

  2. Geben Sie im Snappoint-Einstellungsfenster einen Ausdruck ein.

    Eingeben eines Ausdrucks

    In der vorherigen Abbildung wird die Momentaufnahme nur dann für den Schnappschuss-Punkt erstellt, wenn visitor.FirstName == "Dan".

Festlegen eines Logpoints

Zusätzlich zum Erstellen einer Momentaufnahme, wenn ein Snappoint erreicht wird, können Sie auch einen Snappoint so konfigurieren, dass eine Nachricht protokolliert wird (d. a. einen Logpoint erstellen). Sie können Logpoints festlegen, ohne Ihre App erneut bereitstellen zu müssen. Logpoints werden virtuell ausgeführt und verursachen keine Auswirkungen oder Nebenwirkungen für Ihre ausgeführte Anwendung.

So erstellen Sie einen Logpoint

  1. Klicken Sie mit der rechten Maustaste auf ein Andockpunktsymbol (das blaue Sechseck), und wählen Sie "Einstellungen" aus.

  2. Wählen Sie im Snappoint-Einstellungsfenster "Aktionen" aus.

    Erstellen eines Logpoints

  3. Im Feld "Nachricht " können Sie die neue Protokollnachricht eingeben, die Sie protokollieren möchten. Sie können Variablen auch in Ihrer Protokollnachricht auswerten, indem Sie sie in geschweifte Klammern setzen.

    Wenn Sie " An Ausgabefenster senden" auswählen, wird beim Treffer des Logpoints die Meldung im Fenster "Diagnosetools" angezeigt.

    Logpoint-Daten im Fenster

    Wenn Sie "An Anwendungsprotokoll senden" auswählen, wird die Meldung bei Aktivierung des Logpoints überall dort angezeigt, wo Sie Nachrichten sehen können, z. B. in System.Diagnostics.Trace, aus ILogger (oder in .NET Core).

In diesem Lernprogramm haben Sie erfahren, wie Sie den Snapshot-Debugger für App Services verwenden. Möglicherweise möchten Sie weitere Details zu diesem Feature lesen.