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.
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
Der Momentaufnahmedebugger für Azure Kubernetes Services ist nur für Visual Studio 2019 Enterprise 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 Enterprise.
Snapshot-Sammlung ist für die folgenden Azure Kubernetes Services-Web-Apps verfügbar:
ASP.NET Core-Anwendungen, die auf .NET Core 2.2 oder höher auf Debian 9 ausgeführt werden.
ASP.NET Core-Anwendungen, die auf .NET Core 2.2 oder höher auf Alpine 3.8 ausgeführt werden.
ASP.NET Core-Anwendungen, die auf .NET Core 2.2 oder höher unter Ubuntu 18.04 ausgeführt werden.
Hinweis
Zur Unterstützung des Snapshot-Debuggers in AKS haben wir ein Repository bereitgestellt, das eine Reihe von Dockerfiles enthält, die das Setup auf Docker-Images veranschaulichen.
Öffnen Sie Ihr Projekt, und starten Sie den Snapshot-Debugger.
Ö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 Kubernetes-Dienst veröffentlicht wird.
Wählen Sie debug > Attach Snapshot Debugger... aus. Wählen Sie die AKS-Ressource aus, für die Ihre Web-App bereitgestellt wird, und ein Azure-Speicherkonto, und klicken Sie dann auf "Anfügen". Snapshot Debugger unterstützt auch Azure App Service und Azure Virtual Machines (VM) und Virtual Machine Scale Sets.
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.
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).
Fangpunkt festlegen
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.
Klicken Sie auf "Sammlung starten" , um den Andockpunkt zu aktivieren.
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
Wenn der Schnappschusspunkt erreicht wird, erscheint eine Momentaufnahme im Fenster "Diagnosewerkzeuge". Um dieses Fenster zu öffnen, wählen Sie Debug > Fenster > Diagnosetools anzeigen.
Doppelklicken Sie auf den Snappoint, um die Momentaufnahme im Code-Editor zu öffnen.
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
Klicken Sie mit der rechten Maustaste auf ein Andockpunktsymbol (die hohle Kugel), und wählen Sie "Einstellungen" aus.
Geben Sie im Snappoint-Einstellungsfenster einen Ausdruck ein.
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
Klicken Sie mit der rechten Maustaste auf ein Andockpunktsymbol (das blaue Sechseck), und wählen Sie "Einstellungen" aus.
Wählen Sie im Snappoint-Einstellungsfenster "Aktionen" aus.
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.
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, ausILogger(oder in .NET Core).
Verwandte Inhalte
In diesem Lernprogramm haben Sie erfahren, wie Sie den Snapshot-Debugger für Azure Kubernetes verwenden. Möglicherweise möchten Sie weitere Details zu diesem Feature lesen.