Debuggen von Ausnahmen in .NET-Anwendungen mithilfe des Momentaufnahmedebuggers

Mit dem Momentaufnahmedebugger können Sie automatisch eine Debug-Momentaufnahme sammeln, wenn in Ihrer .NET-Liveanwendung eine Ausnahme auftritt. Die gesammelten Debugmomentaufnahmen zeigen den Status des Quellcodes und der Variablen in dem Moment, in dem die Ausnahme ausgelöst wurde.

Der Momentaufnahmedebugger in Application Insights:

  • Überwacht vom System generierte Protokolle Ihrer Web-App.
  • Erfasst Momentaufnahmen Ihrer am häufigsten ausgelösten Ausnahmen.
  • Stellt Informationen bereit, die Sie für die Diagnose von Problemen in der Produktion benötigen.

Erfahren Sie mehr über die Prozesse Snapshot Debugger und Snapshot Uploader.

Unterstützte Anwendungen und Umgebungen

In diesem Abschnitt werden die unterstützten Anwendungen und Umgebungen aufgeführt.

Anwendungen

Die Momentaufnahmesammlung ist für folgende Anwendungen verfügbar:

Umgebungen

Die folgenden Umgebungen werden unterstützt:

Hinweis

Clientanwendungen (z. B. WPF, Windows Forms oder UWP) werden nicht unterstützt.

Voraussetzungen für die Verwendung des Snapshot-Debuggers

Pakete und Konfigurationen

Berechtigungen

Funktionsweise des Momentaufnahmedebuggers

Der Momentaufnahmedebugger wird als Application Insights-Telemetrieprozessor implementiert. Bei Ausführung der Anwendung wird der Momentaufnahmedebugger-Telemetrieprozessor der systemseitig generierten Protokollpipeline Ihrer Anwendung hinzugefügt.

Wichtig

Momentaufnahmen können personenbezogene Daten oder andere vertrauliche Informationen in Variablen- und Parameterwerten enthalten. Momentaufnahmedaten werden in derselben Region wie Ihre Application Insights-Ressource gespeichert.

Momentaufnahmedebugger-Prozess

Der Momentaufnahmedebugger-Prozess beginnt und endet mit der TrackException-Methode. Eine Prozessmomentaufnahme ist ein angehaltener Klon des ausgeführten Prozesses, sodass Ihre Benutzer nur wenig bis gar keine Unterbrechungen erleben.

  1. Ihre Anwendung löst TrackException aus.

  2. Der Momentaufnahmedebugger überwacht Ausnahmen, während sie ausgelöst werden, indem er das AppDomain.CurrentDomain.FirstChanceException-Ereignis abonniert.

  3. Ein Zähler für die Problem-ID wird inkrementiert.

    • Wenn der Zähler den Wert ThresholdForSnapshotting erreicht, wird die Problem-ID einem Sammlungsplan hinzugefügt.

    Hinweis

    Der ThresholdForSnapshotting-Standardwert ist 1. Mit diesem Wert muss Ihre App die gleiche Ausnahme also zweimal auslösen, bevor eine Momentaufnahme erstellt wird.

  4. Die Problem-ID des Ausnahmeereignisses wird berechnet und mit den Problem-IDs im Sammlungsplan verglichen.

  5. Ist eine Entsprechung mit einer Problem-ID vorhanden, wird eine Momentaufnahme des ausgeführten Prozesses erstellt.

    • Der Momentaufnahme wird ein eindeutiger Bezeichner zugewiesen, und die Ausnahme wird mit diesem Bezeichner gekennzeichnet.

    Hinweis

    Die Rate der Momentaufnahmenerstellung wird durch die Einstellung SnapshotsPerTenMinutesLimit begrenzt. Standardmäßig ist das Limit auf eine einzelne Momentaufnahme pro zehn Minuten festgelegt.

  6. Nachdem der FirstChanceException-Handler zurückgekehrt ist, wird die ausgelöste Ausnahme normal verarbeitet.

  7. Die Ausnahme erreicht wieder die Methode TrackException und wird zusammen mit dem Momentaufnahmebezeichner an Application Insights gemeldet.

Hinweis

Legen Sie IsEnabledInDeveloperMode auf true fest, wenn Sie beim Debuggen in Visual Studio Momentaufnahmen generieren möchten.

Snapshot Uploader-Prozess

Während der Momentaufnahmedebugger-Prozess weiterläuft und den Datenverkehr für die Benutzer ohne größere Unterbrechung bereitstellt, wird die Momentaufnahme an den Momentaufnahmedebugger-Prozess übergeben. Der Snapshot-Uploader:

  1. Erstellt einen Minidump.

  2. Lädt den Minidump zusammen mit allen relevanten Symboldateien (.pdb) in Application Insights hoch.

Hinweis

Pro Tag können maximal 50 Momentaufnahmen hochgeladen werden.

Wenn Sie den Momentaufnahmedebugger aktiviert haben, aber keine Momentaufnahmen angezeigt werden, lesen Sie den Leitfaden zur Problembehandlung.

Begrenzungen

In diesem Abschnitt werden die Einschränkungen für den Momentaufnahmedebugger erläutert.

  • Datenaufbewahrung

    Debugmomentaufnahmen werden 15 Tage lang gespeichert. Die Standardrichtlinie zur Datenaufbewahrung wird für jede Anwendung festgelegt. Wenn Sie diesen Wert erhöhen möchten, können Sie eine Erhöhung anfordern, indem Sie einen Supportfall im Azure-Portal eröffnen. Für jede Application Insights-Instanz ist eine maximale Anzahl von 50 Momentaufnahmen pro Tag zulässig.

  • Veröffentlichen von Symbolen

    Der Momentaufnahmedebugger erfordert für die folgenden Aufgaben Symboldateien auf dem Produktionsserver:

    • Decodieren von Variablen
    • Bereitstellen einer Debugfunktion in Visual Studio

    Standardmäßig veröffentlicht Visual Studio 2017 ab Version 15.2 Symbole für Release-Builds, wenn es im App Service veröffentlicht wird.

    In Vorgängerversionen müssen Sie der Veröffentlichungsprofildatei vom Typ .pubxml die folgende Zeile hinzufügen, um Symbole im Releasemodus zu veröffentlichen:

         <ExcludeGeneratedDebugSymbol>False</ExcludeGeneratedDebugSymbol>
    

    Stellen Sie bei Azure Compute und anderen Typen sicher, dass die Symboldateien entweder:

    • Im gleichen Ordner der Standard-Anwendung .dll (in der Regel wwwroot/bin) oder
    • Im aktuellen Pfad verfügbar sind.

    Weitere Informationen zu den verschiedenen verfügbaren Symboloptionen finden Sie in der Visual Studio-Dokumentation. Damit Sie die besten Ergebnisse erhalten, empfehlen wir Ihnen, Vollständig, Portabel oder Eingebettet zu verwenden.

  • Optimierte Builds

    In einigen Fällen können lokale Variablen in Release-Builds nicht angezeigt werden, weil der JIT-Compiler Optimierungen vornimmt.

    In App Service kann der Momentaufnahmedebugger jedoch Auslösemethoden, die Teil seines Sammelplans sind, deoptimieren.

    Tipp

    Installieren Sie in Ihrer App Service-Instanz die Application Insights-Websiteerweiterung, um Deoptimierungsunterstützung zu erhalten.

Nächste Schritte

Aktivieren des Application Insights-Momentaufnahmedebuggers für Ihre Anwendung:

Versionshinweise für Microsoft.ApplicationInsights.SnapshotCollector

Dieser Abschnitt enthält Versionshinweise für das NuGet-Paket Microsoft.ApplicationInsights.SnapshotCollector für .NET-Anwendungen, das vom Application Insights-Momentaufnahmedebugger verwendet wird.

Erfahren Sie mehr über den Application Insights-Momentaufnahmedebugger für .NET-Anwendungen.

Zum Einreichen von Fehlerberichten und Feedback können Sie ein Problem in GitHub öffnen.

Hinweis

Am 31. März 2025 wird der Support für die auf Instrumentierungsschlüsseln basierende Erfassung eingestellt. Die Erfassung von Instrumentierungsschlüsseln funktioniert zwar weiterhin, wir stellen jedoch keine Updates und keinen Support mehr für das Feature bereit. Wechseln Sie zu Verbindungszeichenfolgen, damit Sie neue Funktionen nutzen können.

1.4.6

Eine Punktfreigabe zur Behebung einer Regression bei Verwendung von .NET 8-Anwendungen.

Fehlerkorrekturen

  • Ausnahmen, die von dynamisch generierten Methoden (z. B. kompilierten Ausdrucksstrukturen) in .NET 8 ausgelöst werden, werden nicht ordnungsgemäß nachverfolgt. Fest

1.4.5

Hierbei handelt es sich um ein Nebenrelease, um einen von Benutzer*innen gemeldeten Fehler zu beheben.

Fehlerkorrekturen

  • AccessViolationException beim Lesen einiger PDBs wurde behoben.

Änderungen

  • ReadMe zum NuGet-Paket hinzugefügt.
  • msdia140.dll aktualisiert.

1.4.4

Hierbei handelt es sich um ein Nebenrelease, um von Benutzern gemeldete Fehler zu beheben.

Behebung von Programmfehlern

Änderungen

  • Fehlermeldungen für PDB-Scans von Fehler auf Warnung heruntergestuft
  • msdia140.dll aktualisiert.
  • Herstellen einer Dienstverbindung vermeiden, wenn der Debugger über die Websiteerweiterungseinstellungen deaktiviert ist

1.4.3

Hierbei handelt es sich um ein Nebenrelease, um von Benutzern gemeldete Fehler zu beheben.

Behebung von Programmfehlern

1.4.2

Hierbei handelt es sich um ein Nebenrelease, um einen von Benutzer*innen gemeldeten Fehler zu beheben.

Behebung von Programmfehlern

ArgumentException: Delegate müssen denselben Typ aufweisen wurde behoben.

1.4.1

Hierbei handelt es sich um ein Nebenrelease, in dem ein in Version 1.4.0 eingeführter Breaking Change rückgängig gemacht wurde.

Behebung von Programmfehlern

Methode nicht gefunden in WebJobs wurde behoben.

1.4.0

Adressiert mehrere Verbesserungen und zusätzliche Unterstützung für Microsoft Entra-Authentifizierung für Application Insights-Datenerfassung.

Änderungen

  • Reduzierte Snapshot Collector-Paketgröße um 60 % von 10,34 MB auf 4,11 MB.
  • In Snapshot Collector wird nur netstandard2.0 als Ziel verwendet.
  • Die Application Insights-SDK-Abhängigkeit wurde auf 2.15.0 aktualisiert.
  • MinidumpWithThreadInfo wurde beim Schreiben von Speicherabbildern wieder hinzugefügt.
  • CompatibilityVersion wurde hinzugefügt, um die Synchronisierung zwischen dem Snapshot Collector-Agent und dem Snapshot Uploader bei Breaking Changes zu verbessern.
  • Der Benennungsalgorithmus für SnapshotUploader LogFile wurde geändert, um übermäßige Datei-E/A in App Service zu vermeiden.
  • pid, role name und process start time zu den hochgeladenen Blob-Metadaten hinzugefügt.
  • Nach Möglichkeit wird in Snapshot Collector und Snapshot Uploader System.Diagnostics.Process verwendet.

Neue Funktionen

Vorgehensweise der Microsoft Entra-Authentifizierung für SnapshotCollector. Weitere Informationen zur Microsoft Entra-Authentifizierung in Application Insights finden Sie unter Microsoft Entra-Authentifizierung für Application Insights.

1.3.7.5

Ein Nebenversionsrelease zum Rückportieren eines Hotfix in 1.4.0-pre.

Behebung von Programmfehlern

ObjectDisposedException beim Herunterfahren wurde behoben.

1.3.7.4

Ein Release einer Nebenversion zur Behandlung eines Problems, das beim Testen des App Service-Szenarios zum Anfügen ohne Code erkannt wurde.

Änderungen

Das netcoreapp3.0-Ziel hängt nun von Microsoft.ApplicationInsights.AspNetCore>= 2.1.1 ab (zuvor >= 2.1.2).

1.3.7.3

Hierbei handelt es sich um ein Release einer Nebenversion zum Beheben einiger Probleme mit hohen Auswirkungen.

Behebung von Programmfehlern

  • Die PDB-Ermittlung im Ordner wwwroot/bin“ wurde behoben, die nach der Änderung des Suchalgorithmus für Symbole in Version 1.3.6 beschädigt war.
  • Überflüssige ExtractWasCalledMultipleTimesException-Informationen in der Telemetrie behoben.

1.3.7

Änderungen

Das netcoreapp2.0-Ziel von SnapshotCollector hängt von Microsoft.ApplicationInsights.AspNetCore>= 2.1.1 ab (erneut). Mit dieser Änderung wurde das Verhalten wiederhergestellt, das vor Version 1.3.5 vorhanden war. In Version 1.3.6 wurde ein Upgrade versucht, das jedoch zu Problemen bei einigen App Service-Szenarien führte.

Neue Funktionen

Snapshot Collector liest und analysiert den ConnectionString-Wert aus der Umgebungsvariable APPLICATIONINSIGHTS_CONNECTION_STRING oder aus TelemetryConfiguration. Dies wird hauptsächlich zum Festlegen des Endpunkts zum Herstellen einer Verbindung mit dem Momentaufnahmedienst verwendet. Weitere Informationen finden Sie in der Dokumentation zu Verbindungszeichenfolgen.

Behebung von Programmfehlern

Wechsel zur Verwendung von HttpClient für alle Ziele mit Ausnahme von net45, da WebRequest in einigen Umgebungen aufgrund inkompatibler SecurityProtocol (erfordert TLS 1.2) fehlschlug.

1.3.6

Änderungen

  • SnapshotCollector hängt nun für alle Zielframeworks von Microsoft.ApplicationInsights>= 2.5.1 ab. Bei dieser Anforderung kann es sich um einen Breaking Change handeln, wenn Ihre Anwendung von einer älteren Version des Microsoft.ApplicationInsights SDK abhängig ist.
  • Die Unterstützung für TLS 1.0 und 1.1 wurde im Snapshot Uploader entfernt.
  • Die Dauer von PDB-Scans weist nun standardmäßig 24 Stunden anstelle von 15 Minuten auf. Konfigurierbar über PdbRescanInterval auf SnapshotCollectorConfiguration.
  • PDB-Scans durchsucht nur die Ordner der obersten Ebene, anstatt rekursiv zu suchen. Bei dieser Änderung kann es sich um ein Breaking Change handeln, wenn sich Ihre Symbole in Unterordnern des Binärordners befinden.

Neue Funktionen

  • Die Protokollrotation wurde in SnapshotUploader zum Vermeiden des Auffüllen der Protokollordner mit alten Dateien hinzugefügt.
  • Die Unterstützung der Deoptimierung (über ReJIT bei Anfügung) für .NET Core 3.0-Anwendungen wurde hinzugefügt.
  • Symbole wurden zu NuGet-Paketen hinzugefügt.
  • Legen Sie beim Hochladen von Minidumps weitere Metadaten fest.
  • Eine Initialized-Eigenschaft wurde zu SnapshotCollectorTelemetryProcessor hinzugefügt. Dabei handelt es sich um ein CancellationToken, das abgebrochen wird, wenn Snapshot Collector initialisiert und mit dem Dienstendpunkt verbunden ist.
  • Momentaufnahmen können nun für Ausnahmen in dynamisch generierten Methoden erfasst werden. Ein Beispiel sind die kompilierten Ausdrucksbaumstrukturen, die von Entity Framework-Abfragen generiert werden.

Behebung von Programmfehlern

  • AmbiguousMatchException aufgrund des Statusmonitors beim Laden von Snapshot Collector.
  • Die Erweiterungsmethode GetSnapshotCollector sucht nun alle TelemetrySinks.
  • Snapshot Uploader wird nicht auf nicht unterstützten Plattformen gestartet.
  • InvalidOperationException wird bei der Deoptimierung dynamischer Methoden behandelt (z. B. Entity Framework).

1.3.5

  • Unterstützung für Sovereign Clouds wurde hinzugefügt (ältere Versionen funktionieren in Sovereign Clouds nicht).
  • Das Hinzufügen von Snapshot Collector wurde mithilfe von AddSnapshotCollector() vereinfacht. Weitere Informationen finden Sie unter Aktivieren des Momentaufnahmedebuggers für .NET-Apps in Azure App Service.
  • Die FISMA MD5-Einstellung wird zum Verifizieren von Blobblöcken verwendet. Durch diese Einstellung wird der .NET MD5-Standardkryptografiealgorithmus vermieden, der nicht verfügbar ist, wenn der FIPS-kompatible Modus für das Betriebssystem festgelegt wird.
  • Frames von .NET Framework werden beim Deoptimieren von Funktionsaufrufen ignoriert. Sie können dieses Verhalten mit der Konfigurationseinstellung DeoptimizeIgnoredModules steuern.
  • Die Konfigurationseinstellung DeoptimizeMethodCount wurde hinzugefügt, die die Deoptimierung von mehr als nur einem Funktionsaufruf ermöglicht.

1.3.4

  • Strukturierte Instrumentierungsschlüssel sind zugelassen.
  • Die Stabilität von SnapshotUploader wurde verbessert. Der Start wird fortgesetzt, selbst wenn die Uploaderprotokolle nicht verschoben werden können.
  • Die Berichterstellung für zusätzliche Telemetrie, wenn SnapshotUploader.exe sofort beendet wird, wurde wieder aktiviert (dieses Feature wurde in Version 1.3.3 deaktiviert).
  • Die interne Telemetrie wurde vereinfacht.
  • Experimentelle Funktion: Pläne für Andockpunktsammlungen: snapshotOnFirstOccurence wird hinzugefügt. Weitere Informationen finden Sie in diesem GitHub-Artikel.

1.3.3

Ein Fehler wurde behoben, durch den SnapshotUploader.exe nicht mehr reagiert und keine Momentaufnahmen für .NET Core-Apps hochgeladen hat.

1.3.2

  • Experimentelle Funktion: Pläne für Andockpunktsammlungen. Weitere Informationen finden Sie in diesem GitHub-Artikel.
  • SnapshotUploader.exe wird beendet, wenn die Runtime die AppDomain entlädt, aus derSnapshotCollector geladen wird, anstatt dass auf die Beendigung des Prozesses gewartet wird. Diese Aktion verbessert die Zuverlässigkeit des Collectors, wenn dieser in IIS gehostet wird.
  • Es wurde Konfiguration hinzugefügt, die mehrere SnapshotCollector-Instanzen zulässt, die denselben Instrumentierungsschlüssel verwenden, um den gleichen SnapshotUploader-Prozess zu verwenden: ShareUploaderProcess (standardmäßig true).
  • Zusätzliche Telemetriedaten werden gemeldet, wenn SnapshotUploader.exe sofort beendet wird.
  • Die Anzahl der Unterstützungsdateien, die SnapshotUploader.exe auf den Datenträger schreiben muss, wurde reduziert.

1.3.1

  • Die Unterstützung für das Erfassen von Momentaufnahmen mit der RtlCloneUserProcess-API wurde entfernt. Nur die PssCaptureSnapshots-API wird unterstützt.
  • Das Standardlimit für die maximale Anzahl von Momentaufnahmen, die innerhalb von 10 Minuten erfasst werden können, wurde von eins auf drei erhöht.
  • Für SnapshotUploader.exe wurde die Aushandlung von TLS 1.1 und 1.2 zugelassen.
  • Weitere Telemetriedaten wurden gemeldet, wenn SnapshotUploader eine Warnung oder einen Fehler protokolliert.
  • Das Erstellen von Momentaufnahmen wird beendet, wenn der Back-End-Dienst meldet, dass das tägliche Kontingent erreicht wurde (50 Momentaufnahmen pro Tag).
  • Es wurde eine zusätzliche Überprüfung zu SnapshotUploader.exe hinzugefügt, um die gleichzeitige Ausführung von zwei Instanzen zu untersagen.

1.3.0

Änderungen

  • Bei Anwendungen für .NET Framework hängt Snapshot Collector jetzt von der Microsoft.ApplicationInsights-Version 2.3.0 oder höher ab. Vorher war 2.2.0 oder höher. Wir glauben, dass diese Änderung für die meisten Anwendungen kein Problem sein wird. Informieren Sie uns, wenn Sie durch diese Änderung die aktuelle Version von Snapshot Collector nicht verwenden können.
  • Beim Wiederholen fehlgeschlagener Uploads werden exponentielle Backoffverzögerungen im Snapshot Uploader verwendet.
  • ServerTelemetryChannel wird für zuverlässigere Berichterstattung von Telemetriedaten verwendet (sofern verfügbar).
  • SdkInternalOperationsMonitor wird bei der ersten Herstellung der Verbindung mit dem Momentaufnahmedebugger-Dienst verwendet, damit diese von der Abhängigkeitsüberwachung ignoriert wird.
  • Die Telemetrie bei der ersten Verbindung mit dem Momentaufnahmedebugger wurde verbessert.
  • Melden Sie weitere Telemetriedaten für Folgendes:
    • App Service-Version.
    • Compute-Instanzen von Azure
    • Container.
    • Azure Functions-App.

Behebung von Programmfehlern

  • Wenn das Zurücksetzungsintervall für den Problemzähler auf 24 Tage festgelegt ist, wird dies als 24 Stunden interpretiert.
  • Ein Fehler wurde behoben, bei dem der Snapshot Uploader die Verarbeitung neuer Momentaufnahmen beendet hat, wenn eine Ausnahme beim Löschen einer Momentaufnahme aufgetreten ist.

1.2.3

Das Signieren mit starkem Namen mithilfe von Snapshot Uploader-Binärdateien wurde behoben.

1.2.2

Änderungen

  • Die für SnapshotUploader(64).exe erforderlichen Dateien sind nun als Ressourcen in die Haupt-DLL eingebettet. Das bedeutet, dass der Ordner SnapshotCollectorFiles nicht mehr erstellt wird, wodurch die Erstellung und Bereitstellung vereinfacht und die Übersichtlichkeit im Projektmappen-Explorer verbessert wird. Überprüfen Sie die Änderungen an Ihrer .csproj-Datei sorgfältig, wenn Sie ein Upgrade durchführen. Die Microsoft.ApplicationInsights.SnapshotCollector.targets-Datei ist nicht mehr erforderlich.
  • Telemetriedaten werden in Ihrer Application Insights-Ressource protokolliert, selbst wenn ProvideAnonymousTelemetry auf False festgelegt ist. Durch diese Änderung kann ein Feature für die Integritätsprüfung im Azure-Portal implementiert werden. ProvideAnonymousTelemetry wirkt sich nur auf die Telemetriedaten aus, die für Produktsupport und -verbesserung an Microsoft gesendet werden.
  • Wenn TempFolder oder ShadowCopyFolder an Umgebungsvariablen weitergeleitet werden, sollte der Collector im Leerlauf gehalten werden, bis die Umgebungsvariablen festgelegt wurden.
  • Für Anwendungen, die über einen Proxyserver eine Verbindung mit dem Internet herstellen, erkennt Snapshot Collector Proxyeinstellungen automatisch und übergibt diese an SnapshotUploader.exe.
  • Die Priorität des SnapshotUploader-Prozesses wurde (nach Möglichkeit) gesenkt. Diese Priorität kann jedoch über die Option IsLowPrioirtySnapshotUploader überschrieben werden.
  • Eine GetSnapshotCollector-Erweiterungsmethode wurde in TelemetryConfiguration für Szenarien hinzugefügt, in denen Sie Snapshot Collector programmgesteuert konfigurieren müssen.
  • In für Kunden sichtbare Telemetriedaten wurde die Version des Application Insights SDK (anstelle der Anwendungsversion) angegeben.
  • Das erste Heartbeatereignis wird nach zwei Minuten gesendet.

Behebung von Programmfehlern

  • Die Ausnahme NullReferenceException wurde behoben, die aufgetreten ist, wenn Ausnahmen Datenwörterbücher aufwiesen, die NULL oder unveränderlich waren.
  • Der PDB-Abgleich im Uploader wird mehrmals wiederholt, wenn eine Freigabeverletzung auftritt.
  • Die doppelten Telemetriedaten bei mehreren Threadaufrufen in die Telemetriepipeline beim Start wurden behoben.

1.2.1

Änderungen

  • XML-Dokumentationskommentardateien sind nun im NuGet-Paket enthalten.
  • Eine ExcludeFromSnapshotting-Erweiterungsmethode für System.Exception wurde für Szenarien hinzugefügt, bei denen Sie wissen, dass Sie über eine ungenaue Ausnahme verfügen, und das Erstellen von Momentaufnahmen für diese vermeiden möchten.
  • Es wurde eine IsEnabledWhenProfiling-Konfigurationseigenschaft hinzugefügt, die standardmäßig True ist. Hierbei handelt es sich um eine Änderung der vorherigen Versionen, bei denen die Momentaufnahmenerstellung vorübergehend deaktiviert wurde, wenn Application Insights Profiler eine ausführliche Sammlung durchgeführt hat. Das alte Verhalten kann wiederhergestellt werden, indem diese Eigenschaft auf false festgelegt wird.

Behebung von Programmfehlern

  • SnapshotUploader64.exe wird nun ordnungsgemäß signiert.
  • Der Schutz vor doppelter Initialisierung des Telemetrieprozessors wurde eingerichtet.
  • Die doppelte Protokollierung von Telemetriedaten in Apps mit mehreren Pipelines wird nun verhindert.
  • Ein Fehler beim Ablaufdatum von Sammlungsplänen wurde behoben, der Momentaufnahmen nach 24 Stunden verhindern konnte.

1.2.0

Die größte Änderung dieser Version ist eine Umschreibung der Erstellung von Momentaufnahmen und der Verarbeitungspipeline (daher der Wechsel zu einer neuen Nebenversionsnummer). In vorherigen Versionen wurde diese Funktionalität in nativem Code implementiert (ProductionBreakpoints.dll* und SnapshotHolder.exe*). Bei der neuen Implementierung handelt es sich ausschließlich um verwalteten Code mit P/Invokes (Plattformaufrufen).

Für diese erste Version mit der neuen Pipeline wurde das ursprüngliche Verhalten kaum geändert. Die neue Implementierung ermöglicht bessere Fehlerberichterstellung und bereitet den Weg für zukünftige Verbesserungen.

Andere Änderungen in dieser Version

  • MinidumpUploader.exe wurde in SnapshotUploader.exe (oder SnapshotUploader64.exe) umbenannt.
  • Es wurden Zeittelemetriedaten zu DeOptimize-/ReOptimize-Anforderungen hinzugefügt.
  • Die GZIP-Komprimierung wurde für Uploads von Minidumps hinzugefügt.
  • Ein Problem wurde behoben, bei dem PDB-Dateien gesperrt waren, wodurch Standortupgrades verhindert wurden.
  • Der ursprüngliche Ordnername (SnapshotCollectorFiles) wird nun beim Erstellen von Schattenkopien protokolliert.
  • Die Arbeitsspeicherlimits für 64-Bit-Prozesse wurden angepasst, um Standortneustarts aufgrund von unzureichendem Arbeitsspeicher zu verhindern.
  • Ein Fehler wurde behoben, bei dem Momentaufnahmen auch nach der Deaktivierung weiterhin erfasst wurden.
  • Heartbeatereignisse werden nun in der KI-Ressource des Kunden protokolliert.
  • Die Geschwindigkeit der Momentaufnahmenerstellung wurde erhöht, indem „Source“ (Quelle) aus der Problem-ID entfernt wurde.

1.1.2

Änderungen

  • Erweiterte Nutzungstelemetrie.
  • Die .NET-Version und das Betriebssystem werden erkannt und gemeldet.
  • Weitere Azure-Umgebungen (Azure Cloud Services, Azure Service Fabric) werden erkannt und gemeldet.
  • Ausnahmemetriken (die Anzahl der Ausnahmen bei erster Möglichkeit und die Anzahl von TrackException-Aufrufen) werden in den Heartbeat-Telemetriedaten aufgezeichnet und gemeldet.

Behebung von Programmfehlern

  • Richtige Verarbeitung von SqlException, bei der die innere Ausnahme (Win32Exception) nicht ausgelöst wird.
  • Die nachstehenden Leerzeichen in Symbolordnern wurden gekürzt, die zu einer fehlerhaften Analyse von Befehlszeilenargumenten für MinidumpUploader führten.
  • Das unbegrenzte Wiederholen von fehlgeschlagenen Verbindungen mit dem Endpunkt des Momentaufnahmedebugger-Agents wird nun verhindert.

1.1.0

Änderungen

  • Es wurde ein Schutzmechanismus für den Hostarbeitsspeicher hinzugefügt. Dieses Feature reduziert die Auswirkungen auf den Arbeitsspeicher des Hostcomputers.
  • Die Anzeige der Momentaufnahmen im Azure-Portal wurde verbessert.