Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Po włączeniu narzędzie Snapshot Debugger automatycznie zbiera migawkę debugowania kodu źródłowego i zmiennych, gdy wystąpi wyjątek w aktywnej aplikacji .NET. Debuger migawek w usłudze Application Insights:
- Monitoruje dzienniki generowane przez system z poziomu aplikacji internetowej.
- Zbiera migawki dotyczące najwyższych wyjątków.
- Zawiera informacje potrzebne do diagnozowania problemów w środowisku produkcyjnym.
Dowiedz się więcej na temat procesów Snapshot Debugger i Snapshot Uploader.
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 działające na systemie operacyjnym wersji 4 lub nowszej
- Usługa Azure Service Fabric uruchomiona w systemie Windows Server 2012 R2 lub nowszym
- Maszyny wirtualne platformy Azure oraz zestawy skalowania maszyn wirtualnych 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 Snapshot Collector w aplikacji.
- Skonfiguruj parametry kolekcji w programie
ApplicationInsights.config
.
Uprawnienia
- Sprawdź, czy jesteś dodany do roli Debuggera migawki usługi Application Insights dla docelowej migawki usługi Application Insights.
Jak działa debuger migawek
Debuger migawkowy jest implementowany jako procesor telemetrii Application Insights. Po uruchomieniu aplikacji procesor telemetrii Snapshot Debugger zostaje dodany do potoku dzienników generowanych przez aplikację w systemie.
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 usługi Application Insights.
Proces debugowania migawkowego
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. W typowym scenariuszu:
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ść
ThresholdForSnapshotting
, identyfikator problemu zostanie dodany do planu zbierania.
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 zdarzenia wyjątku jest obliczany i porównywany z identyfikatorami problemów w planie zbierania danych.
Jeśli istnieje dopasowanie między identyfikatorami problemów, zostanie utworzona migawka uruchomionego procesu.
- Migawka ma przypisany unikalny identyfikator, a wyjątek jest oznaczany tym identyfikatorem.
Uwaga
Szybkość tworzenia migawki jest ograniczona przez ustawienie
SnapshotsPerTenMinutesLimit
. 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łoszony do usługi Application Insights wraz z identyfikatorem migawki.
Uwaga
Ustaw IsEnabledInDeveloperMode
na true
, jeśli chcesz generować migawki podczas debugowania w programie Visual Studio.
Proces przesyłania migawek za pomocą uploadera
Podczas gdy proces debugowania migawek nadal działa i z niewielkimi przerwami obsługuje ruch użytkowników, migawka jest przekazywana do procesu przesyłania migawek. W typowym scenariuszu Uploader migawek:
Tworzy minidump.
Przekazuje minidump do usługi Application Insights wraz ze wszystkimi 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.
Uaktualnianie Snapshot Debugger
Automatyczne uaktualnienia program Snapshot Debugger są realizowane za pośrednictwem wbudowanego, wstępnie zainstalowanego rozszerzenia strony Application Insights.
Ręczne dodawanie rozszerzenia witryny usługi Application Insights w celu zachowania aktualności debugera migawek jest przestarzałe.
Koszty ogólne
Debuger migawek jest przeznaczony do użytku w środowiskach produkcyjnych. Ustawienia domyślne obejmują limity szybkości, aby zminimalizować wpływ na aplikacje.
Możliwe, że wystąpi małe obciążenie procesora, pamięci i operacji we/wy związanych z debugerem migawek, na przykład:
- Gdy w aplikacji jest zgłaszany wyjątek
- Jeśli program obsługi wyjątków zdecyduje się utworzyć migawkę
- Gdy
TrackException
jest wywoływany
Nie ma dodatkowych kosztów przechowywania danych przechwyconych przez narzędzie Snapshot Debugger.
Zobacz przykładowe scenariusze, w których może wystąpić obciążenie narzędzia Snapshot Debugger.
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 usługi Application Insights 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ącą linię do pliku profilu
.pubxml
publikowania, aby symbole zostały opublikowane w trybie release:<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, Snapshot Debugger może deoptymalizować metody, które są częścią jego planu zbierania danych.
Napiwek
Zainstaluj rozszerzenie witryny "Application Insights" w wystąpieniu usługi App Service, aby uzyskać wsparcie dla deoptymalizacji.
Następne kroki
Włącz debuger migawek usługi Application Insights dla aplikacji: