Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Pokud je tato možnost povolená, Snapshot Debugger automaticky shromažďuje snímek ladění zdrojového kódu a proměnných, když dojde k výjimce ve vaší živé .NET aplikaci. Snapshot Debugger ve Application Insights:
- Monitoruje systémově generované protokoly z vaší aplikace pro web.
- Shromažďuje snímky nejčastěji vyvolávaných výjimek.
- Poskytuje informace, které potřebujete k diagnostice problémů v produkčním prostředí.
Podporované aplikace a prostředí
Aplikace
Kolekce snímků je dostupná pro:
- .NET Framework 4.6.2 a novější verze.
- .NET 6.0 nebo novější ve Windows.
Prostředí
Podporují se následující prostředí:
- Azure App Service
- Azure Functions
- Azure Cloud Services se systémem OS family 4 nebo novějším
- Azure Service Fabric spuštěné na Windows Server 2012 R2 nebo novějším
- Azure Virtual Machines a Azure Virtual Machine Scale Sets běžící na Windows Server 2012 R2 nebo novější
- Virtuální nebo fyzické stroje na pracovišti s Windows Server 2012 R2 nebo novější či Windows 8.1 nebo novější
Poznámka:
Klientské aplikace, jako je WPF, Windows Forms nebo UPW, se nepodporují.
Požadavky pro použití nástroje Snapshot Debugger
Balíčky a konfigurace
- Do své aplikace zahrňte balíček NuGet Snapshot Collectoru.
- Konfigurace parametrů kolekce v souboru
ApplicationInsights.config.
Oprávnění
- Ověřte, že jste přidaní do role Application Insights Snapshot Debugger pro cílový Application Insights Snapshot.
Jak funguje Snapshot Debugger
Snapshot Debugger je implementován jako zpracovatel telemetrie Application Insights. Po spuštění aplikace se do kanálu protokolů vygenerovaných systémem vaší aplikace přidá procesor telemetrie snapshot Debuggeru.
Důležité
Snímky můžou obsahovat osobní údaje nebo jiné citlivé informace v hodnotách proměnných a parametrů. Data snímku se ukládají ve stejné oblasti jako prostředek Application Insights.
Proces Snapshot Debugger
Proces Snapshot Debugger se spustí a končí metodou TrackException . Snímek procesu je pozastavená kopie běžícího procesu. Vaši uživatelé zažívají minimální až žádné přerušení. V typickém scénáři:
Ve vaší aplikaci se vyvolá výjimka a nahlásí se do Application Insights voláním metody
TrackException.Snapshot Debugger monitoruje výjimky, když jsou vyvolány přihlášením k odběru události
AppDomain.CurrentDomain.FirstChanceException.Pro ID problému se zvýší čítač.
Když čítač dosáhne
ThresholdForSnapshottinghodnoty, ID problému se přidá do plánu kolekce.Poznámka:
Výchozí
ThresholdForSnapshottingminimální hodnota je 1. S touto hodnotou musí vaše aplikace před vytvořením snímku aktivovat stejnou výjimku dvakrát .ID problému události výjimky se vypočítá a porovná s ID problémů v plánu sběru.
Pokud existuje shoda mezi ID problémů, vytvoří se snímek spuštěného procesu.
Snímek má přiřazen jedinečný identifikátor a výjimka je označena tímto identifikátorem.
Poznámka:
Rychlost vytváření snímků je omezená
SnapshotsPerTenMinutesLimitnastavením. Ve výchozím nastavení je limitem jeden snímek každých 10 minut.Po návratu obslužné
FirstChanceExceptionrutiny je vyvolaná výjimka zpracována jako obvykle.Výjimka znovu dosáhne
TrackExceptionmetody a je hlášena službě Application Insights spolu s identifikátorem snímku.
Poznámka:
Pokud chcete při ladění ve Visual Studio generovat snímky, nastavte IsEnabledInDeveloperMode na true.
Proces nahrání snímku
I když proces Snapshot Debugger nadále běží a obsluhuje provoz uživatelů s minimálním přerušením, snímek je předán procesu nahrávače snímků. V typickém scénáři nástroj Snapshot Uploader:
Vytvoří minidump.
Nahraje minidump do Application Insights spolu se všemi relevantními soubory symbolu (.pdb).
Poznámka:
Nelze nahrát více než 50 snímků za den.
Pokud jste povolili Ladicí program snímků, ale nezobrazují se vám snímky, prohlédněte si průvodce odstraňováním potíží.
Upgradování ladicího programu Snímků
Snapshot Debugger se automaticky upgraduje pomocí integrovaného předinstalovaného rozšíření webu Application Insights.
Ruční přidání rozšíření webu Application Insights k udržení Snapshot Debuggeru aktuálním je zastaralé.
Režijní náklady
Snapshot Debugger je navržený pro použití v produkčních prostředích. Výchozí nastavení zahrnují omezení rychlosti, která minimalizují dopad na vaše aplikace.
Avšak můžete zaznamenat malou zátěž procesoru, paměti a vstupně-výstupních operací spojenou s ladicím nástrojem Snapshot Debugger, například:
- Při vyvolání výjimky v aplikaci
- Pokud se obslužná rutina výjimky rozhodne vytvořit snímek obrazovky
- Když je
TrackExceptionvolána
Za ukládání dat zachycených nástrojem Snapshot Debugger nejsou žádné další náklady .
Optimalizace kódu
Pokud se snímky shromažďují z vaší aplikace, v konsolidovaném přehledu optimalizace kódu můžou existovat související přehledy výjimek.
Omezení
Tato část pojednává o omezeních pro ladění snímků.
Uchovávání dat
Snímky ladění se ukládají po dobu 15 dnů. Výchozí zásady uchovávání dat se nastavily pro jednotlivé aplikace. Pokud potřebujete tuto hodnotu zvýšit, můžete požádat o zvýšení otevřením případu podpory v Azure portal. Pro každou instanci Application Insights je povolený maximální počet 50 snímků za den.
Publikování symbolů
Snapshot Debugger vyžaduje soubory symbolů na produkčním serveru, aby:
- Dekódování proměnných
- Poskytnout prostředí pro ladění ve Visual Studiu
Ve výchozím nastavení Visual Studio 2017 verze 15.2 nebo novější publikuje symboly pro produkční sestavení při publikování na App Service.
V předchozích verzích musíte do souboru svého publikačního profilu
.pubxmlpřidat následující řádek, aby se symboly publikovaly v režimu vydání:<ExcludeGeneratedDebugSymbol>False</ExcludeGeneratedDebugSymbol>Pro Azure Compute a další typy se ujistěte, že soubory symbolů jsou:
- Ve stejné složce hlavní aplikace
.dll(obvyklewwwroot/bin) nebo - K dispozici v aktuální cestě.
Další informace o různých dostupných možnostech symbolů najdete v dokumentaci k Visual Studio. Nejlepších výsledků dosáhnete, když použijete Full, Portable nebo Embedded.
Optimalizované buildy
V některých případech se místní proměnné nedají zobrazit v buildech vydaných verzí kvůli optimalizacím použitým kompilátorem JIT.
V App Service však může snapshot Debugger deoptimalizovat metody vyvolání metod, které jsou součástí plánu kolekce.
Návod
Nainstalujte rozšíření webu Application Insights ve vaší instanci App Service a získejte podporu deoptimalizace.
Související obsah
Povolte pro vaši aplikaci Ladicí program snímků Application Insights: