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:
- .NET Framework 4.6.2 oder neuere Versionen.
- .NET 6.0 oder höher unter Windows.
Umgebungen
Die folgenden Umgebungen werden unterstützt:
- Azure App Service
- Azure-Funktionen
- Azure Cloud Services mit Betriebssystemfamilie 4 oder höher
- Azure Service Fabric unter Windows Server 2012 R2 oder höher
- Azure Virtual Machines und Azure VM-Skalierungsgruppen unter Windows Server 2012 R2 oder höher
- Lokale virtuelle oder physische Computer unter Windows Server 2012 R2 oder höher oder Windows 8.1 oder höher
Hinweis
Clientanwendungen (z. B. WPF, Windows Forms oder UWP) werden nicht unterstützt.
Voraussetzungen für die Verwendung des Snapshot-Debuggers
Pakete und Konfigurationen
- Schließen Sie das NuGet-Paket für Snapshot Collector in Ihre Anwendung ein.
- Konfigurieren Sie in
ApplicationInsights.config
Parameter für die Erfassung.
Berechtigungen
- Vergewissern Sie sich, dass Sie der Application Insights-Momentaufnahmedebugger-Rolle für das Ziel Application Insights-Momentaufnahmen hinzugefügt werden.
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.
Ihre Anwendung löst
TrackException
aus.Der Momentaufnahmedebugger überwacht Ausnahmen, während sie ausgelöst werden, indem er das
AppDomain.CurrentDomain.FirstChanceException
-Ereignis abonniert.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.- Wenn der Zähler den Wert
Die Problem-ID des Ausnahmeereignisses wird berechnet und mit den Problem-IDs im Sammlungsplan verglichen.
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.Nachdem der
FirstChanceException
-Handler zurückgekehrt ist, wird die ausgelöste Ausnahme normal verarbeitet.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:
Erstellt einen Minidump.
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 Regelwwwroot/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:
- Azure App Service
- Azure-Funktionen
- Azure Cloud Services
- Azure Service Fabric
- Azure Virtual Machines und Virtual Machine Scale Sets
- Lokale virtuelle oder physische Computer
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
- Ausnahme während der nativen Komponentenextraktion bei Verwendung einer einzelnen Dateianwendung korrigiert.
Ä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
- Ausblenden der IMDS-Abhängigkeit in der Abhängigkeitsnachverfolgung korrigiert.
- ArgumentException: telemetryProcessorTypedoes implementiert ITelemetryProcessor nicht korrigiert.
Über das SDK verwendeter Snapshot Collector wird nicht unterstützt, wenn die Interop-Funktion aktiviert ist. Sieh Weitere nicht unterstützte Szenarien.
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
undprocess 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 vonMicrosoft.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
aufSnapshotCollectorConfiguration
. - 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 zuSnapshotCollectorTelemetryProcessor
hinzugefügt. Dabei handelt es sich um einCancellationToken
, 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 alleTelemetrySinks
. - 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 gleichenSnapshotUploader
-Prozess zu verwenden:ShareUploaderProcess
(standardmäßigtrue
). - 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. DieMicrosoft.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
oderShadowCopyFolder
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 OptionIsLowPrioirtySnapshotUploader
überschrieben werden. - Eine
GetSnapshotCollector
-Erweiterungsmethode wurde inTelemetryConfiguration
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ürSystem.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 auffalse
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.