Debugowanie wyjątków w aplikacjach platformy .NET przy użyciu narzędzia Snapshot Debugger
Za pomocą narzędzia Snapshot Debugger można automatycznie zbierać migawkę debugowania, gdy wystąpi wyjątek w aktywnej aplikacji .NET. Zebrane migawki debugowania pokazują stan kodu źródłowego i zmiennych w momencie zgłoszenia wyjątku.
Debuger migawek w aplikacji Szczegółowe informacje:
- Monitoruje dzienniki generowane przez system z poziomu aplikacji internetowej.
- Zbiera migawki w zgłaszanych wyjątkach.
- Zawiera informacje potrzebne do diagnozowania problemów w środowisku produkcyjnym.
Obsługiwane aplikacje i środowiska
W tej sekcji wymieniono obsługiwane aplikacje i środowiska.
Aplikacje
Kolekcja migawek jest dostępna dla:
- .NET Framework 4.6.2 i nowsze wersje.
- Platforma .NET 6.0 lub nowsza w systemie Windows.
Środowiska
Obsługiwane są następujące środowiska:
- Azure App Service
- Azure Functions
- Usługi Azure Cloud Services z rodziną systemu operacyjnego 4 lub nowszą
- Usługa Azure Service Fabric uruchomiona w systemie Windows Server 2012 R2 lub nowszym
- Maszyny wirtualne platformy Azure i zestawy skalowania maszyn wirtualnych platformy Azure z systemem Windows Server 2012 R2 lub nowszym
- Lokalne maszyny wirtualne lub fizyczne z systemem Windows Server 2012 R2 lub nowszym lub Windows 8.1 lub nowszym
Uwaga
Aplikacje klienckie (na przykład WPF, Windows Forms lub UWP) nie są obsługiwane.
Wymagania wstępne dotyczące korzystania z debugera migawek
Pakiety i konfiguracje
- Uwzględnij pakiet NuGet modułu zbierającego migawki w aplikacji.
- Skonfiguruj parametry kolekcji w programie
ApplicationInsights.config
.
Uprawnienia
- Sprawdź, czy dodano cię do roli debugera migawek Szczegółowe informacje aplikacji docelowej Szczegółowe informacje.
Jak działa debuger migawek
Debuger migawek jest implementowany jako procesor telemetrii Szczegółowe informacje aplikacji. Po uruchomieniu aplikacji procesor telemetrii Snapshot Debugger jest dodawany do potoku dzienników generowanych przez system aplikacji.
Ważne
Migawki mogą zawierać dane osobowe lub inne poufne informacje w wartościach zmiennych i parametrów. Dane migawek są przechowywane w tym samym regionie co zasób aplikacji Szczegółowe informacje.
Proces debugera migawek
Proces debugera migawek rozpoczyna się i kończy się TrackException
metodą . Migawka procesu jest wstrzymanym klonem uruchomionego procesu, dzięki czemu użytkownicy nie mają żadnych przerw w działaniu.
Aplikacja zgłasza błąd
TrackException
.Debuger migawek monitoruje wyjątki w miarę ich zgłaszania przez subskrybowanie zdarzenia
AppDomain.CurrentDomain.FirstChanceException
.Licznik jest zwiększany dla identyfikatora problemu.
- Gdy licznik osiągnie wartość, identyfikator problemu
ThresholdForSnapshotting
zostanie dodany do planu kolekcji.
Uwaga
Domyślna wartość minimalna
ThresholdForSnapshotting
to 1. Przy użyciu tej wartości aplikacja musi wyzwolić ten sam wyjątek dwa razy przed utworzeniem migawki.- Gdy licznik osiągnie wartość, identyfikator problemu
Identyfikator problemu zdarzenia wyjątku jest obliczany i porównywany z identyfikatorami problemów w planie kolekcji.
Jeśli istnieje dopasowanie między identyfikatorami problemów, zostanie utworzona migawka uruchomionego procesu.
- Migawka ma przypisany unikatowy identyfikator, a wyjątek jest oznaczany tym identyfikatorem.
Uwaga
Szybkość tworzenia migawki jest ograniczona
SnapshotsPerTenMinutesLimit
przez ustawienie. Domyślnie limit to jedna migawka co 10 minut.Po powrocie
FirstChanceException
programu obsługi zgłaszany wyjątek jest przetwarzany normalnie.Wyjątek ponownie dociera do
TrackException
metody i jest zgłaszany do aplikacji Szczegółowe informacje wraz z identyfikatorem migawki.
Uwaga
Ustaw IsEnabledInDeveloperMode
wartość na true
, jeśli chcesz wygenerować migawki podczas debugowania w programie Visual Studio.
Proces przekazywania migawek
Podczas gdy proces debugera migawek nadal działa i obsługuje ruch do użytkowników z niewielkimi przerwami, migawka jest przekazywana do procesu przekazywania migawek. Program przekazujący migawki:
Tworzy minidump.
Przekazuje minidump do aplikacji Szczegółowe informacje wraz z dowolnymi odpowiednimi plikami symboli (pdb).
Uwaga
Nie można przekazać więcej niż 50 migawek dziennie.
Jeśli włączono debuger migawek, ale nie widzisz migawek, zobacz Przewodnik rozwiązywania problemów.
Ograniczenia
W tej sekcji omówiono ograniczenia dotyczące debugera migawek.
Przechowywanie danych
Migawki debugowania są przechowywane przez 15 dni. Domyślne zasady przechowywania danych są ustawiane dla poszczególnych aplikacji. Jeśli chcesz zwiększyć tę wartość, możesz poprosić o zwiększenie, otwierając zgłoszenie do pomocy technicznej w witrynie Azure Portal. Dla każdego wystąpienia aplikacji Szczegółowe informacje dozwolona jest maksymalna liczba 50 migawek dziennie.
Symbole publikowania
Debuger migawek wymaga plików symboli na serwerze produkcyjnym, aby:
- Dekoduj zmienne
- Zapewnianie środowiska debugowania w programie Visual Studio
Domyślnie program Visual Studio 2017 w wersji 15.2 lub nowszej publikuje symbole kompilacji wydania podczas publikowania w usłudze App Service.
W poprzednich wersjach należy dodać następujący wiersz do pliku profilu
.pubxml
publikowania, aby symbole zostały opublikowane w trybie wydania:<ExcludeGeneratedDebugSymbol>False</ExcludeGeneratedDebugSymbol>
W przypadku usługi Azure Compute i innych typów upewnij się, że pliki symboli są następujące:
- W tym samym folderze głównej aplikacji
.dll
(zazwyczajwwwroot/bin
), lub - Dostępne w bieżącej ścieżce.
Aby uzyskać więcej informacji na temat różnych dostępnych opcji symboli, zobacz dokumentację programu Visual Studio. Aby uzyskać najlepsze wyniki, zalecamy użycie opcji Full, Portable lub Embedded.
Zoptymalizowane kompilacje
W niektórych przypadkach zmiennych lokalnych nie można wyświetlić w kompilacjach wydania z powodu optymalizacji stosowanych przez kompilator JIT.
Jednak w usłudze App Service debuger migawek może deoptymalizować metody, które są częścią planu kolekcji.
Napiwek
Zainstaluj rozszerzenie aplikacji Szczegółowe informacje lokacji w wystąpieniu usługi App Service, aby uzyskać obsługę deoptymalizacji.
Następne kroki
Włącz narzędzie Application Szczegółowe informacje Snapshot Debugger dla aplikacji:
- Azure App Service
- Azure Functions
- usług Azure Cloud Services
- Azure Service Fabric
- Maszyny wirtualne platformy Azure i zestawy skalowania maszyn wirtualnych
- Lokalne maszyny wirtualne lub fizyczne
Informacje o wersji programu Microsoft.ApplicationInsights.SnapshotCollector
Ta sekcja zawiera informacje o Microsoft.ApplicationInsights.SnapshotCollector
wersji pakietu NuGet dla aplikacji platformy .NET, które są używane przez program Application Szczegółowe informacje Snapshot Debugger.
Dowiedz się więcej na temat narzędzia Application Szczegółowe informacje Snapshot Debugger dla aplikacji platformy .NET.
W przypadku raportów o usterce i opinii otwórz problem w usłudze GitHub.
Uwaga
31 marca 2025 r. zostanie zakończone świadczenie pomocy technicznej dla pozyskiwania klucza instrumentacji. Pozyskiwanie klucza instrumentacji będzie nadal działać, ale nie udostępnimy już aktualizacji ani obsługi funkcji. Przejście do parametry połączenia w celu skorzystania z nowych funkcji.
1.4.6
Wydanie punktu w celu rozwiązania regresji w przypadku korzystania z aplikacji platformy .NET 8.
Poprawki błędów
- Wyjątki zgłaszane z dynamicznie generowanych metod (np. skompilowanych drzew wyrażeń) na platformie .NET 8 nie są śledzone poprawnie. Stałe.
1.4.5
Wydanie punktu w celu rozwiązania błędu zgłoszonego przez użytkownika.
Poprawki błędów
- Naprawiono wyjątek AccessViolationException podczas odczytywania niektórych plików PDB.
Zmiany
- Dodano plik ReadMe do pakietu NuGet.
- Zaktualizowano msdia140.dll.
1.4.4
Wydanie punktu w celu rozwiązania problemów z usterkami zgłoszonymi przez użytkownika.
Poprawki błędów
Zmiany
- Obniżone komunikaty o błędach skanowania pdB z błędu na Ostrzeżenie.
- Zaktualizowano msdia140.dll.
- Unikaj nawiązywania połączenia z usługą, jeśli debuger jest wyłączony za pośrednictwem ustawień rozszerzenia lokacji.
1.4.3
Wydanie punktu w celu rozwiązania problemów z usterkami zgłoszonymi przez użytkownika.
Poprawki błędów
- Naprawiono problem ukrywania zależności IMDS z trackera zależności.
- Naprawiono wyjątek ArgumentException: telemetryProcessorTypedoes nie implementuje elementu ITelemetryProcessor.
Moduł zbierający migawki używany za pośrednictwem zestawu SDK nie jest obsługiwany, gdy funkcja międzyoperacyjna jest włączona. Zobacz Więcej nieobsługiwanych scenariuszy.
1.4.2
Wydanie punktu w celu rozwiązania błędu zgłoszonego przez użytkownika.
Poprawki błędów
Naprawiono wyjątek ArgumentException: Delegaty muszą być tego samego typu.
1.4.1
Wydanie punktu w celu odwrócenia zmiany powodującej niezgodność wprowadzonej w wersji 1.4.0.
Poprawki błędów
Nie można odnaleźć metody stałej w zadaniach WebJob.
1.4.0
Rozwiązano wiele ulepszeń i dodano obsługę uwierzytelniania w usłudze Microsoft Entra na potrzeby pozyskiwania Szczegółowe informacje aplikacji.
Zmiany
- Zmniejszony rozmiar pakietu modułu zbierającego migawki o 60% z 10,34 MB do 4,11 MB.
- Docelowa wartość netstandard2.0 tylko w module zbierającym migawki.
- Zależność zestawu SDK Szczegółowe informacje aplikacji Szczegółowe informacje do wersji 2.15.0.
- Dodano z powrotem
MinidumpWithThreadInfo
podczas zapisywania zrzutów. - Dodano
CompatibilityVersion
polecenie w celu ulepszenia synchronizacji między agentem modułu zbierającego migawki a modułem przekazującym migawki w przypadku zmian powodujących niezgodność. - Zmieniono
SnapshotUploader
algorytm nazewnictwa pliku LogFile, aby uniknąć nadmiernego we/wy pliku w usłudze App Service. - Dodano
pid
element ,role name
iprocess start time
do przekazanych metadanych obiektu blob. - Używane
System.Diagnostics.Process
w module zbierającym migawki i narzędziu do przekazywania migawek.
Nowe funkcje
Dodano uwierzytelnianie firmy Microsoft Entra do elementu SnapshotCollector
. Aby dowiedzieć się więcej na temat uwierzytelniania entra firmy Microsoft w usłudze Application Szczegółowe informacje, zobacz Microsoft Entra authentication for Application Szczegółowe informacje (Uwierzytelnianie w usłudze Microsoft Entra dla aplikacji Szczegółowe informacje).
1.3.7.5
Wydanie punktu w celu ponownego zaimportowania poprawki z wersji 1.4.0-pre.
Poprawki błędów
Naprawiono wyjątek ObjectDisposedException podczas zamykania.
1.3.7.4
Wydanie punktu w celu rozwiązania problemu wykrytego podczas testowania scenariusza dołączania bez kodu usługi App Service.
Zmiany
Element netcoreapp3.0
docelowy zależy teraz od Microsoft.ApplicationInsights.AspNetCore
>= 2.1.1 (wcześniej >= 2.1.2).
1.3.7.3
Wydanie punktu w celu rozwiązania kilku problemów o dużym wpływie.
Poprawki błędów
- Naprawiono odnajdywanie pdB w folderze wwwroot/bin , które zostało przerwane po zmianie algorytmu wyszukiwania symboli w wersji 1.3.6.
- Naprawiono hałaśliwy
ExtractWasCalledMultipleTimesException
w telemetrii.
1.3.7
Zmiany
Wartość docelowa netcoreapp2.0
SnapshotCollector
elementu zależy od Microsoft.ApplicationInsights.AspNetCore
>= 2.1.1 (ponownie). Ta zmiana przywraca zachowanie tak, aby była wcześniejsza niż 1.3.5. Próbowaliśmy uaktualnić go w wersji 1.3.6, ale niektóre scenariusze usługi App Service uległy awarii.
Nowe funkcje
Moduł zbierający migawki odczytuje i analizuje element ConnectionString
ze zmiennej środowiskowej APPLICATIONINSIGHTS_CONNECTION_STRING lub z TelemetryConfiguration
. Przede wszystkim służy do ustawiania punktu końcowego na potrzeby nawiązywania połączenia z usługą Snapshot. Aby uzyskać więcej informacji, zobacz dokumentację ciągów Połączenie ion.
Poprawki błędów
Przełączono się na używanie HttpClient
dla wszystkich obiektów docelowych z wyjątkiem net45
tego, że WebRequest
w niektórych środowiskach wystąpił błąd z powodu niezgodności SecurityProtocol
(wymaga protokołu TLS 1.2).
1.3.6
Zmiany
SnapshotCollector
teraz zależy odMicrosoft.ApplicationInsights
>= 2.5.1 dla wszystkich platform docelowych. To wymaganie może być zmianą powodującą niezgodność, jeśli aplikacja zależy od starszej wersji zestawu Microsoft.Application Szczegółowe informacje SDK.- Usunięto obsługę protokołu TLS 1.0 i 1.1 w narzędziu do przekazywania migawek.
- Okres skanowania pdB jest teraz domyślny 24 godziny zamiast 15 minut. Można skonfigurować za pomocą polecenia
PdbRescanInterval
w systemieSnapshotCollectorConfiguration
. - Skanowanie pliku PDB wyszukuje tylko foldery najwyższego poziomu, a nie rekursywne. Ta zmiana może być zmianą powodującą niezgodność, jeśli symbole znajdują się w podfolderach folderu binarnego.
Nowe funkcje
- Rotacja dziennika w programie ,
SnapshotUploader
aby uniknąć wypełniania folderu dzienników starymi plikami. - Obsługa deoptymalizacji (za pośrednictwem funkcji ReJIT podczas dołączania) dla aplikacji platformy .NET Core 3.0.
- Dodano symbole do pakietu NuGet.
- Ustaw więcej metadanych podczas przekazywania minidumps.
Initialized
Dodano właściwość doSnapshotCollectorTelemetryProcessor
elementu .CancellationToken
Jest to element , który jest anulowany, gdy moduł zbierający migawki jest inicjowany i połączony z punktem końcowym usługi.- Migawki można teraz przechwytować dla wyjątków w metodach generowanych dynamicznie. Przykładem są skompilowane drzewa wyrażeń generowane przez zapytania platformy Entity Framework.
Poprawki błędów
AmbiguousMatchException
ładowanie modułu zbierającego migawki z powodu monitora stanu.GetSnapshotCollector
metoda rozszerzenia wyszukuje teraz wszystkieTelemetrySinks
metody .- Nie uruchamiaj narzędzia do przekazywania migawek na nieobsługiwanych platformach.
- Dojście
InvalidOperationException
podczas deoptymalizacji metod dynamicznych (na przykład Entity Framework).
1.3.5
- Dodano obsługę suwerennych chmur (starsze wersje nie działają w suwerennych chmurach).
- Dodanie modułu zbierającego migawki jest łatwiejsze przy użyciu polecenia
AddSnapshotCollector()
. Aby uzyskać więcej informacji, zobacz Włączanie debugera migawek dla aplikacji platformy .NET w usłudze aplikacja systemu Azure Service. - Użyj ustawienia FISMA MD5 do weryfikowania bloków obiektów blob. To ustawienie pozwala uniknąć domyślnego algorytmu kryptograficznego MD5 platformy .NET, który jest niedostępny, gdy system operacyjny jest ustawiony na tryb zgodny ze standardem FIPS.
- Ignoruj ramki programu .NET Framework podczas deoptymalizacji wywołań funkcji. Steruj tym zachowaniem za pomocą
DeoptimizeIgnoredModules
ustawienia konfiguracji. DeoptimizeMethodCount
Dodano ustawienie konfiguracji, które umożliwia deoptymalizowanie więcej niż jednego wywołania funkcji.
1.3.4
- Dozwolone klucze instrumentacji strukturalnej.
- Zwiększona niezawodność narzędzia do przekazywania migawek. Kontynuuj uruchamianie, nawet jeśli nie można przenieść starych dzienników modułu przekazującego.
- Ponowne raportowanie większej ilości danych telemetrycznych w przypadku natychmiastowego zakończenia SnapshotUploader.exe (została wyłączona w wersji 1.3.3).
- Uproszczone wewnętrzne dane telemetryczne.
- Funkcja eksperymentalna: Plany kolekcji punktów przyciągania: Dodaj
snapshotOnFirstOccurence
. Aby uzyskać więcej informacji, zobacz ten artykuł w usłudze GitHub.
1.3.3
Usunięto usterkę powodującą , że SnapshotUploader.exe przestać odpowiadać, a nie przekazywać migawek dla aplikacji platformy .NET Core.
1.3.2
- Funkcja eksperymentalna: plany kolekcji snappoint. Aby uzyskać więcej informacji, zobacz ten artykuł w usłudze GitHub.
- SnapshotUploader.exe kończy działanie, gdy środowisko uruchomieniowe zwalnia
AppDomain
SnapshotCollector
załadowane, zamiast czekać na zakończenie procesu. Ta akcja zwiększa niezawodność modułu zbierającego w przypadku hostowanych w usługach IIS. - Dodano konfigurację umożliwiającą korzystanie z wielu
SnapshotCollector
wystąpień używających tego samego klucza instrumentacji do współużytkowania tego samegoSnapshotUploader
procesu:ShareUploaderProcess
(wartość domyślna totrue
). - Zgłoszono więcej danych telemetrycznych, gdy SnapshotUploader.exe natychmiast kończy działanie.
- Zmniejszono liczbę plików pomocy technicznej, SnapshotUploader.exe musi zapisywać na dysku.
1.3.1
- Usunięto obsługę zbierania migawek przy użyciu interfejsu API RtlCloneUserProcess i obsługuje tylko interfejs API PssCaptureSnapshots.
- Zwiększono domyślny limit liczby migawek, które można przechwycić w ciągu 10 minut od jednego do trzech.
- Zezwalaj SnapshotUploader.exe na negocjowanie protokołów TLS 1.1 i 1.2.
- Zgłoszono więcej danych telemetrycznych podczas
SnapshotUploader
rejestrowania ostrzeżenia lub błędu. - Zatrzymaj tworzenie migawek, gdy usługa zaplecza zgłasza dzienny limit przydziału (50 migawek dziennie).
- Dodano dodatkowe zaewidencjonowania SnapshotUploader.exe, aby nie zezwalać na uruchamianie dwóch wystąpień w tym samym czasie.
1.3.0
Zmiany
- W przypadku aplikacji przeznaczonych dla programu .NET Framework moduł zbierający migawki zależy teraz od aplikacji Microsoft.Application Szczegółowe informacje w wersji 2.3.0 lub nowszej. Wcześniej była to wersja 2.2.0 lub nowsza. Uważamy, że ta zmiana nie będzie problemem dla większości aplikacji. Poinformuj nas, czy ta zmiana uniemożliwia korzystanie z najnowszego modułu zbierającego migawki.
- Podczas ponawiania próby przekazania nie powiodło się, użyj opóźnień wycofywania wykładniczego w module przekazywania migawek.
- Użyj
ServerTelemetryChannel
(jeśli jest dostępna) w celu uzyskania bardziej niezawodnego raportowania danych telemetrycznych. - Użyj
SdkInternalOperationsMonitor
polecenia na początkowym połączeniu z usługą Snapshot Debugger, aby śledzenie zależności je ignorowało. - Ulepszono dane telemetryczne dotyczące początkowego połączenia z debugerem migawki.
- Zgłoś więcej danych telemetrycznych dla:
- Wersja usługi App Service.
- Wystąpienia obliczeniowe platformy Azure.
- Kontenery.
- Aplikacja usługi Azure Functions.
Poprawki błędów
- Gdy interwał resetowania licznika problemów jest ustawiony na 24 dni, zinterpretuj to jako 24 godziny.
- Usunięto usterkę polegającą na tym, że program przekazujący migawki przestał przetwarzać nowe migawki, jeśli wystąpił wyjątek podczas dysponowania migawki.
1.2.3
Naprawiono podpisywanie silnej nazwy przy użyciu plików binarnych narzędzia do przekazywania migawek.
1.2.2
Zmiany
- Pliki wymagane dla biblioteki SnapshotUploader(64).exe są teraz osadzone jako zasoby w głównej biblioteki DLL. Oznacza to, że
SnapshotCollectorFiles
folder nie jest już tworzony, co upraszcza kompilowanie i wdrażanie oraz zmniejsza ilość danych w Eksplorator rozwiązań. Podczas uaktualniania należy zachować ostrożność, aby przejrzeć zmiany w.csproj
pliku. PlikMicrosoft.ApplicationInsights.SnapshotCollector.targets
nie jest już potrzebny. - Dane telemetryczne są rejestrowane w zasobie Szczegółowe informacje aplikacji, nawet jeśli
ProvideAnonymousTelemetry
ustawiono wartość false. Ta zmiana pozwala zaimplementować funkcję sprawdzania kondycji w witrynie Azure Portal.ProvideAnonymousTelemetry
dotyczy tylko danych telemetrycznych wysyłanych do firmy Microsoft w celu uzyskania pomocy technicznej i poprawy produktu. - Gdy
TempFolder
lubShadowCopyFolder
są przekierowywane do zmiennych środowiskowych, zachowaj bezczynność modułu zbierającego do momentu ustawienia tych zmiennych środowiskowych. - W przypadku aplikacji łączących się z Internetem za pośrednictwem serwera proxy moduł zbierający migawki automatycznie wykrywa wszystkie ustawienia serwera proxy i przekazuje je do SnapshotUploader.exe.
- Obniż priorytet
SnapshotUploader
procesu (jeśli to możliwe). Ten priorytet można zastąpić za pomocąIsLowPrioirtySnapshotUploader
opcji . - Dodano metodę
GetSnapshotCollector
rozszerzenia dlaTelemetryConfiguration
scenariuszy, w których chcesz programowo skonfigurować moduł zbierający migawki. - Ustaw wersję zestawu SDK Szczegółowe informacje aplikacji (zamiast wersji aplikacji) w telemetrii dostępnej dla klienta.
- Wyślij pierwsze zdarzenie pulsu po dwóch minutach.
Poprawki błędów
- Naprawiono
NullReferenceException
, gdy wyjątki mają słowniki danych o wartości null lub niezmienne. - W module przekazującym ponów próbę dopasowania pliku PDB kilka razy, jeśli wystąpi naruszenie zasad udostępniania.
- Napraw zduplikowane dane telemetryczne, gdy więcej niż jeden wątek wywołuje potok telemetrii podczas uruchamiania.
1.2.1
Zmiany
- Pliki komentarzy dokumentu XML są teraz zawarte w pakiecie NuGet.
- Dodano metodę
ExcludeFromSnapshotting
rozszerzenia dlaSystem.Exception
scenariuszy, w których wiesz, że masz hałaśliwy wyjątek i chcesz uniknąć tworzenia migawek. IsEnabledWhenProfiling
Dodano właściwość konfiguracji, która jest domyślnie ustawiona na true. Jest to zmiana z poprzednich wersji, w której tworzenie migawki zostało tymczasowo wyłączone, jeśli aplikacja Szczegółowe informacje Profiler wykonywała szczegółową kolekcję. Stare zachowanie można odzyskać, ustawiając tę właściwość nafalse
.
Poprawki błędów
- Poprawnie podpisać SnapshotUploader64.exe .
- Ochrona przed podwójną inicjacją procesora telemetrii.
- Zapobiegaj podwójnemu rejestrowaniu danych telemetrycznych w aplikacjach przy użyciu wielu potoków.
- Usunięto usterkę z czasem wygaśnięcia planu kolekcji, co mogło uniemożliwić migawki po 24 godzinach.
1.2.0
Największą zmianą w tej wersji (stąd przejście do nowego numeru wersji pomocniczej) jest przepisanie potoku tworzenia i obsługi migawki. W poprzednich wersjach ta funkcja została zaimplementowana w kodzie natywnym (ProductionBreakpoints.dll* i SnapshotHolder.exe*). Nowa implementacja to cały kod zarządzany z wywołaniami P/Invoke.
W przypadku tej pierwszej wersji przy użyciu nowego potoku nie odeszliśmy od oryginalnego zachowania. Nowa implementacja umożliwia lepsze raportowanie błędów i konfiguruje nas na potrzeby przyszłych ulepszeń.
Inne zmiany w tej wersji
- nazwa MinidumpUploader.exe została zmieniona na SnapshotUploader.exe (lub SnapshotUploader64.exe).
- Dodano telemetrię chronometrii do deOptimize/ReOptimize żądań.
- Dodano kompresję gzip na potrzeby przekazywania minidump.
- Rozwiązano problem polegający na tym, że pliki PDB były zablokowane uniemożliwiające uaktualnienie lokacji.
- Zarejestruj oryginalną nazwę folderu (SnapshotCollectorFiles) podczas kopiowania w tle.
- Skorygowano limity pamięci dla 64-bitowych procesów, aby zapobiec ponownym uruchomieniom lokacji z powodu OOM.
- Rozwiązano problem polegający na tym, że migawki były nadal zbierane nawet po wyłączeniu.
- Rejestrowanie zdarzeń pulsu do zasobu sztucznej inteligencji klienta.
- Ulepszona szybkość migawek przez usunięcie "źródła" z identyfikatora problemu.
1.1.2
Zmiany
- Rozszerzone dane telemetryczne użycia.
- Wykrywanie i raportowanie wersji platformy .NET i systemu operacyjnego.
- Wykrywanie i zgłaszanie większej liczby środowisk platformy Azure (Azure Cloud Services, Azure Service Fabric).
- Metryki wyjątków rejestrowania i raportowania (liczba wyjątków pierwszej szansy i liczba wywołań) w telemetrii pulsu
TrackException
.
Poprawki błędów
- Prawidłowa obsługa tego
SqlException
, gdzie wyjątek wewnętrzny (Win32Exception) nie jest zgłaszany. - Przycięte spacje końcowe w folderach symboli, które spowodowały niepoprawną analizowanie argumentów wiersza polecenia do
MinidumpUploader
elementu . - Uniemożliwiono nieskończone ponawianie nieudanych połączeń z punktem końcowym agenta debugera migawek.
1.1.0
Zmiany
- Dodano ochronę pamięci hosta. Ta funkcja zmniejsza wpływ na pamięć maszyny hosta.
- Ulepszono środowisko wyświetlania migawek w witrynie Azure Portal.