Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Wanneer deze functie is ingeschakeld, verzamelt Snapshot Debugger automatisch een momentopname van foutopsporing van de broncode en variabelen wanneer er een uitzondering optreedt in uw live .NET-toepassing. Het foutopsporingsprogramma voor momentopnamen in Application Insights:
- Bewaakt door het systeem gegenereerde logboeken van uw web-app.
- Verzamelt momentopnamen van uw meest voorkomende uitzonderingen.
- Bevat informatie die u nodig hebt om problemen in productie vast te stellen.
Meer informatie over de processen snapshot debugger en Snapshot Uploader.
Ondersteunde toepassingen en omgevingen
Toepassingen
Verzameling momentopnamen is beschikbaar voor:
- .NET Framework 4.6.2 en nieuwere versies.
- .NET 6.0 of hoger in Windows.
Omgevingen
De volgende omgevingen worden ondersteund:
- Azure App Service
- Azure Functions
- Azure Cloud Services met besturingssysteemfamilie 4 of hoger
- Azure Service Fabric uitgevoerd op Windows Server 2012 R2 of hoger
- Azure Virtuele Machines en Azure Virtuele Machinenschaalsets met Windows Server 2012 R2 of hoger
- On-premises virtuele of fysieke machines met Windows Server 2012 R2 of hoger of Windows 8.1 of hoger
Notitie
Clienttoepassingen (bijvoorbeeld WPF, Windows Forms of UWP) worden niet ondersteund.
Vereisten voor het gebruik van het foutopsporingsprogramma voor momentopnamen
Pakketten en configuraties
- Neem het NuGet-pakket Snapshot Collector op in uw toepassing.
- Verzamelingsparameters configureren in
ApplicationInsights.config
.
Machtigingen
- Controleer of u bent toegevoegd aan de rol Application Insights Snapshot Debugger voor het doel Application Insights Snapshot.
Hoe Snapshot Debugger werkt
Het Snapshot Debugger wordt geïmplementeerd als een Application Insights-telemetrieprocessor. Wanneer uw toepassing wordt uitgevoerd, wordt de Snapshot Debugger-telemetrieprocessor toegevoegd aan de door het systeem gegenereerde logpipeline van uw toepassing.
Belangrijk
Momentopnamen kunnen persoonlijke gegevens of andere gevoelige informatie bevatten in variabelen en parameterwaarden. Momentopnamegegevens worden opgeslagen in dezelfde regio als uw Application Insights-resource.
Proces voor foutopsporingsprogramma voor momentopnamen
Het proces snapshot debugger wordt gestart en eindigt met de TrackException
methode. Een momentopname van een proces is een onderbroken kloon van het actieve proces, zodat uw gebruikers weinig tot geen onderbreking ervaren. In een typisch scenario:
Uw toepassing gooit een
TrackException
.De Snapshot Debugger bewaakt uitzonderingen wanneer deze worden gegenereerd door zich te abonneren op de
AppDomain.CurrentDomain.FirstChanceException
gebeurtenis.Een teller wordt verhoogd voor het probleem-ID.
- Wanneer de teller de
ThresholdForSnapshotting
waarde bereikt, wordt de probleem-id toegevoegd aan een verzamelingsplan.
Notitie
De
ThresholdForSnapshotting
standaard minimumwaarde is 1. Met deze waarde moet uw app dezelfde uitzondering twee keer activeren voordat een momentopname wordt gemaakt.- Wanneer de teller de
De probleem-id van de uitzonderingsgebeurtenis wordt berekend en vergeleken met de probleem-id's in het verzamelingsplan.
Als er een overeenkomst is tussen probleem-id's, wordt er een momentopname van het actieve proces gemaakt.
- Aan de momentopname wordt een unieke id toegewezen en de uitzondering wordt gestempeld met die id.
Notitie
De snelheid voor het maken van momentopnamen wordt beperkt door de
SnapshotsPerTenMinutesLimit
instelling. Standaard is de limiet elke 10 minuten één momentopname.Nadat de
FirstChanceException
handler is geretourneerd, wordt de gegooide uitzondering zoals gebruikelijk verwerkt.De uitzondering bereikt de
TrackException
methode opnieuw en wordt gerapporteerd aan Application Insights, samen met de momentopname-id.
Notitie
Stel IsEnabledInDeveloperMode
in op true
als u momentopnamen wilt genereren terwijl u debugt in Visual Studio.
Momentopname-uploaderproces
Hoewel het Snapshot Debugger-proces nog steeds draait en verkeer met weinig onderbreking aan gebruikers levert, wordt de momentopname overgedragen aan het proces van de momentopname-uploader. In een typisch scenario: de momentopname-uploader
Hiermee maakt u een minidump.
Uploadt de minidump naar Application Insights, samen met alle relevante symboolbestanden (.pdb).
Notitie
Er kunnen maximaal 50 momentopnamen per dag worden geüpload.
Als u het foutopsporingsprogramma voor momentopnamen hebt ingeschakeld, maar geen momentopnamen ziet, raadpleegt u de gids voor probleemoplossing.
Foutopsporingsprogramma voor momentopnamen upgraden
Snapshot Debugger wordt automatisch bijgewerkt via de ingebouwde, vooraf geïnstalleerde site-extensie van Application Insights.
Handmatig een Application Insights-site-extensie toevoegen om Snapshot Debugger up-to-date te houden wordt afgeschaft.
administratieve kosten
Het snapshot debugger is ontworpen voor gebruik in productieomgevingen. De standaardinstellingen omvatten frequentielimieten om de impact op uw toepassingen te minimaliseren.
U kunt echter te maken hebben met kleine CPU-, geheugen- en I/O-overhead die is gekoppeld aan het foutopsporingsprogramma voor momentopnamen, zoals:
- Wanneer er een uitzondering wordt gegenereerd in uw toepassing
- Als de uitzonderingshandler besluit een momentopname te maken
- Wanneer
TrackException
wordt aangeroepen
Er zijn geen extra kosten verbonden aan het opslaan van gegevens die zijn vastgelegd door snapshot debugger.
Bekijk voorbeeldscenario's waarin u overhead van snapshot debugger kunt ervaren.
Beperkingen
In deze sectie worden beperkingen beschreven voor het foutopsporingsprogramma voor momentopnamen.
Gegevensretentie
Momentopnamen voor foutopsporing worden gedurende 15 dagen opgeslagen. Het standaardbeleid voor gegevensretentie wordt per toepassing ingesteld. Als u deze waarde wilt verhogen, kunt u een verhoging aanvragen door een ondersteuningsaanvraag te openen in Azure Portal. Voor elk Application Insights-exemplaar zijn maximaal 50 momentopnamen per dag toegestaan.
Symbolen publiceren
Voor het foutopsporingsprogramma voor momentopnamen zijn symboolbestanden op de productieserver vereist om:
- Variabelen decoderen
- Een foutopsporingservaring bieden in Visual Studio
Visual Studio 2017 versie 15.2+ publiceert standaard symbolen voor release-builds wanneer deze naar App Service wordt gepubliceerd.
In eerdere versies moet u de volgende regel toevoegen aan het publicatieprofielbestand
.pubxml
, zodat symbolen worden gepubliceerd in de releasemodus:<ExcludeGeneratedDebugSymbol>False</ExcludeGeneratedDebugSymbol>
Voor Azure Compute en andere typen moet u ervoor zorgen dat de symboolbestanden zijn:
- In dezelfde map van de hoofdtoepassing
.dll
(meestal)wwwroot/bin
of - Beschikbaar op het huidige pad.
Zie de Visual Studio-documentatie voor meer informatie over de verschillende beschikbare symboolopties. Voor de beste resultaten raden we u aan Full, Portable of Embedded te gebruiken.
Geoptimaliseerde versies
In sommige gevallen kunnen lokale variabelen niet worden weergegeven in releaseversies vanwege optimalisaties die door de JIT-compiler worden toegepast.
In App Service kan het foutopsporingsprogramma voor momentopnamen echter deoptimaliseringsmethoden die deel uitmaken van het verzamelingsplan, deoptimiseren.
Aanbeveling
Installeer de Application Insights-site-extensie in uw exemplaar van App Service om ondersteuning voor deoptimalisatie te krijgen.
Volgende stappen
Schakel het foutopsporingsprogramma van Application Insights Snapshot in voor uw toepassing: