Notatka
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 aplikacji .NET na żywo. 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.
Obsługiwane aplikacje i środowiska
Aplikacje
Kolekcja migawek jest dostępna dla:
- .NET Framework 4.6.2 i nowsze wersje.
- .NET 6.0 lub nowszy w systemie Windows.
Środowiska
Narzędzie Snapshot Debugger obsługuje następujące środowiska:
- Azure App Service
- Azure Functions
- Azure Cloud Services z rodziną systemu operacyjnego 4 lub nowszą
- Azure Service Fabric działa w Windows Server 2012 R2 lub nowszym
- Azure Virtual Machines i Azure Virtual Machine Scale Sets działające na 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, takie jak WPF, Windows Forms lub UWP, nie są obsługiwane.
Wymagania wstępne dotyczące debugera migawek
Pakiety i konfiguracje
- Uwzględnij pakiet NuGet Snapshot Collector w aplikacji.
- Skonfiguruj parametry kolekcji w programie
ApplicationInsights.config.
Uprawnienia
- Sprawdź, czy masz rolę debugera migawek usługi Application Insights dla docelowej migawki usługi Application Insights.
Jak działa debuger migawek
Debugger Snapshot działa jako procesor telemetrii usługi Application Insights. Gdy aplikacja działa, procesor telemetrii narzędzia Snapshot Debugger dołącza do potoku dzienników generowanych automatycznie przez aplikację.
Ważne
Migawki mogą zawierać dane osobowe lub inne poufne informacje w wartościach zmiennych i parametrów. Usługa Application Insights przechowuje dane migawek w tym samym regionie co zasób.
Proces debugowania migawkowego
Proces debugera migawek rozpoczyna się i kończy się TrackException metodą . Migawka procesu jest zawieszonym klonem uruchomionego procesu. Użytkownicy nie mają żadnych przerw w działaniu. W typowym scenariuszu:
Aplikacja zgłasza wyjątek i zgłasza go do usługi Application Insights, wywołując metodę
TrackException.Debuger migawek monitoruje wyjątki w miarę ich zgłaszania przez subskrybowanie zdarzenia
AppDomain.CurrentDomain.FirstChanceException.Debuger migawek zwiększa licznik dla identyfikatora problemu.
Gdy licznik osiągnie wartość
ThresholdForSnapshotting, Snapshot Debugger doda identyfikator problemu do planu zbierania.Uwaga
Domyślna wartość minimalna
ThresholdForSnapshottingto 1. Przy tej wartości aplikacja musi spowodować wystąpienie tego samego wyjątku dwa razy, zanim Debuger migawek utworzy migawkę.Narzędzie Snapshot Debugger oblicza identyfikator problemu dla zdarzenia wyjątku i porównuje go z identyfikatorami problemów w planie zbierania.
Jeśli identyfikatory problemów są zgodne, narzędzie Snapshot Debugger tworzy migawkę uruchomionego procesu.
Debuger zrzutów przypisuje zrzutowi unikatowy identyfikator i opatruje wyjątek tym identyfikatorem.
Uwaga
Ustawienie
SnapshotsPerTenMinutesLimitogranicza szybkość tworzenia migawek. Domyślnie limit to jedna migawka co 10 minut.Po powrocie
FirstChanceExceptionprogramu obsługi aplikacja przetwarza zgłoszony wyjątek w zwykły sposób.Wyjątek ponownie trafia do metody
TrackException, która zgłasza go do usługi Application Insights wraz z identyfikatorem migawki.
Uwaga
Ustaw IsEnabledInDeveloperMode na true, aby generować migawki podczas debugowania w programie Visual Studio.
Proces przesyłania migawek za pomocą uploadera
Podczas gdy proces Snapshot Debugger nadal działa i obsługuje ruch użytkowników, powodując jedynie niewielkie zakłócenia, przekazuje migawkę do procesu Snapshot Uploader. W typowym scenariuszu Uploader migawek:
Tworzy minidump.
Przekazuje minidump do usługi Application Insights wraz ze wszystkimi odpowiednimi plikami symboli (.pdb).
Uwaga
Program do przesyłania migawek może przesłać nie więcej niż 50 migawek dziennie.
Jeśli włączono debuger migawek, ale nie widzisz migawek, zobacz Przewodnik rozwiązywania problemów.
Uaktualnij debuger migawek
Automatyczne uaktualnianie debugera migawek przy użyciu wbudowanego, wstępnie zainstalowanego rozszerzenia witryny usługi Application Insights.
Ręczne dodawanie rozszerzenia witryny usługi Application Insights w celu zapewnienia aktualności debugera migawek jest przestarzałe.
Obciążenie debugera migawek
Debuger migawek jest przeznaczony do użytku w środowiskach produkcyjnych. Ustawienia domyślne obejmują limity szybkości, aby zminimalizować wpływ na aplikacje.
Może jednak wystąpić niewielkie obciążenie procesora, pamięci i wejścia/wyjścia związane z debugerem migawek, na przykład:
- Gdy aplikacja zgłasza wyjątek
- Jeśli program obsługi wyjątków zdecyduje się utworzyć migawkę
- Gdy
TrackExceptionjest wywoływany
Nie ma dodatkowych kosztów przechowywania danych przechwyconych przez debuger migawek.
Zobacz przykładowe scenariusze, w których może wystąpić obciążenie narzędzia Snapshot Debugger.
Optymalizacje kodu
Jeśli narzędzie Snapshot Debugger zbiera migawki z aplikacji, w skonsolidowanym przeglądzie optymalizacji kodu mogą zostać wyświetlone powiązane szczegółowe informacje o wyjątkach.
Ograniczenia debugera migawek
Debuger migawek ma następujące ograniczenia:
Przechowywanie danych
Migawki debugowania są przechowywane przez 15 dni. Domyślne zasady przechowywania danych są ustawiane dla poszczególnych aplikacji. Aby zwiększyć tę wartość, otwórz zgłoszenie do pomocy technicznej w portalu Azure. Każde wystąpienie usługi Application Insights umożliwia maksymalnie 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
.pubxmlpublikowania, aby symbole zostały opublikowane w trybie release:<ExcludeGeneratedDebugSymbol>False</ExcludeGeneratedDebugSymbol>W przypadku 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 dostępnych opcji symboli, zobacz dokumentację Visual Studio. Aby uzyskać najlepsze wyniki, użyj opcji Full, Portable lub Embedded.
Zoptymalizowane kompilacje
W niektórych przypadkach nie można wyświetlić zmiennych lokalnych w kompilacjach wydania, ponieważ kompilator JIT stosuje optymalizacje.
Jednak w App Service debuger migawek może deoptymalizować metody zgłaszania, które są częścią planu kolekcji.
Napiwek
Zainstaluj rozszerzenie witryny Application Insights w usłudze App Service, aby uzyskać obsługę deoptymalizacji.
Treści powiązane
Włącz debuger migawek usługi Application Insights dla aplikacji: