Dela via


Felsöka undantag i .NET-program med hjälp av felsökningsprogrammet för ögonblicksbilder

När det här är aktiverat samlar Snapshot Debugger automatiskt in en ögonblicksbild av källkoden och variablerna när ett undantag inträffar i ditt live-.NET-program. Felsökningsprogrammet för ögonblicksbilder i Application Insights:

  • Övervakar systemgenererade loggar från webbappen.
  • Samlar in ögonblicksbilder på de vanligaste undantagen.
  • Innehåller information som du behöver för att diagnostisera problem i produktion.

Läs mer om processerna för felsökning av ögonblicksbilder och uppladdning av ögonblicksbilder.

Program och miljöer som stöds

I det här avsnittet visas de program och miljöer som stöds.

Appar

Ögonblicksbildsamling är tillgänglig för:

Miljöer

Följande miljöer stöds:

Kommentar

Klientprogram (till exempel WPF, Windows Forms eller UWP) stöds inte.

Förutsättningar för att använda felsökningsprogrammet för ögonblicksbilder

Paket och konfigurationer

Behörigheter

Så här fungerar felsökningsprogrammet för ögonblicksbilder

Felsökningsprogrammet för ögonblicksbilder implementeras som en Application Insights-telemetriprocessor. När programmet körs läggs telemetriprocessorn snapshot debugger till i programmets systemgenererade loggpipeline.

Viktigt!

Ögonblicksbilder kan innehålla personuppgifter eller annan känslig information i variabel- och parametervärden. Ögonblicksbildsdata lagras i samma region som application insights-resursen.

Felsökningsprocess för ögonblicksbilder

Felsökningsprocessen för ögonblicksbilder startar och slutar med TrackException -metoden. En processögonblicksbild är en pausad klon av den pågående processen, så att användarna upplever lite eller inget avbrott. I ett typiskt scenario:

  1. Programmet genererar TrackException.

  2. Felsökningsprogrammet för ögonblicksbilder övervakar undantag när de genereras genom att prenumerera på AppDomain.CurrentDomain.FirstChanceException händelsen.

  3. En räknare ökas för problem-ID:t.

    • När räknaren når ThresholdForSnapshotting värdet läggs problem-ID:t till i en samlingsplan.

    Kommentar

    Standardvärdet ThresholdForSnapshotting är 1. Med det här värdet måste appen utlösa samma undantag två gånger innan en ögonblicksbild skapas.

  4. Undantagshändelsens problem-ID beräknas och jämförs med problem-ID:na i samlingsplanen.

  5. Om det finns en matchning mellan problem-ID:t skapas en ögonblicksbild av den process som körs.

    • Ögonblicksbilden tilldelas en unik identifierare och undantaget stämplas med den identifieraren.

    Kommentar

    Genereringshastigheten för ögonblicksbilder begränsas av inställningen SnapshotsPerTenMinutesLimit . Som standard är gränsen en ögonblicksbild var 10:e minut.

  6. FirstChanceException När hanteraren har returnerats bearbetas undantaget som vanligt.

  7. Undantaget når TrackException metoden igen och rapporteras till Application Insights, tillsammans med ögonblicksbildidentifieraren.

Kommentar

Ange IsEnabledInDeveloperMode till true om du vill generera ögonblicksbilder när du felsöker i Visual Studio.

Uppladdningsprocess för ögonblicksbilder

Medan felsökningsprocessen för ögonblicksbilder fortsätter att köras och hantera trafik till användare med lite avbrott, överlämnas ögonblicksbilden till uppladdningsprocessen för ögonblicksbilder. I ett typiskt scenario laddar du upp ögonblicksbilden:

  1. Skapar en minidump.

  2. Laddar upp minidumpen till Application Insights, tillsammans med relevanta symbolfiler (.pdb).

Kommentar

Högst 50 ögonblicksbilder per dag kan laddas upp.

Om du har aktiverat felsökningsprogrammet för ögonblicksbilder men inte ser ögonblicksbilder kan du läsa felsökningsguiden.

Uppgradera felsökningsprogrammet för ögonblicksbilder

Automatiska uppgraderingar av ögonblicksbildsfelsökaren via det inbyggda, förinstallerade Application Insights-webbplatstillägget.

Att manuellt lägga till ett Application Insights-webbplatstillägg för att hålla Snapshot Debugger uppdaterat är inaktuellt.

Omkostnader

Felsökningsprogrammet för ögonblicksbilder är utformat för användning i produktionsmiljöer. Standardinställningarna innehåller hastighetsbegränsningar för att minimera påverkan på dina program.

Du kan dock uppleva små processor-, minnes- och I/O-omkostnader som är associerade med felsökningsprogrammet för ögonblicksbilder, till exempel:

  • När ett undantag utlöses i programmet
  • Om undantagshanteraren bestämmer sig för att skapa en ögonblicksbild
  • När TrackException anropas

Det finns ingen extra kostnad för att lagra data som samlas in av Snapshot Debugger.

Se exempelscenarier där du kan uppleva felsökningskostnader för ögonblicksbilder.

Begränsningar

I det här avsnittet beskrivs begränsningar för felsökningsprogrammet för ögonblicksbilder.

  • Datakvarhållning

    Ögonblicksbilder av felsökning lagras i 15 dagar. Standardprincipen för datakvarhållning anges per program. Om du behöver öka det här värdet kan du begära en ökning genom att öppna ett supportärende i Azure Portal. För varje Application Insights-instans tillåts högst 50 ögonblicksbilder per dag.

  • Publicera symboler

    Felsökningsprogrammet för ögonblicksbilder kräver symbolfiler på produktionsservern för att:

    • Avkoda variabler
    • Tillhandahålla en felsökningsupplevelse i Visual Studio

    Som standard publicerar Visual Studio 2017 version 15.2+ symboler för versionsversioner när den publiceras till App Service.

    I tidigare versioner måste du lägga till följande rad i publiceringsprofilfilen .pubxml så att symboler publiceras i versionsläge:

         <ExcludeGeneratedDebugSymbol>False</ExcludeGeneratedDebugSymbol>
    

    För Azure Compute och andra typer kontrollerar du att symbolfilerna antingen är:

    • I samma mapp i huvudprogrammet .dll (vanligtvis wwwroot/bin), eller
    • Tillgänglig på den aktuella sökvägen.

    Mer information om de olika symbolalternativen som är tillgängliga finns i Visual Studio-dokumentationen. För bästa resultat rekommenderar vi att du använder Full, Portable eller Embedded.

  • Optimerade versioner

    I vissa fall kan lokala variabler inte visas i versionsversioner på grund av optimeringar som tillämpas av JIT-kompilatorn.

    I App Service kan dock felsökningsprogrammet för ögonblicksbilder avoptimera utkastningsmetoder som ingår i insamlingsplanen.

    Dricks

    Installera Application Insights-webbplatstillägget i din instans av App Service för att få stöd för avoptimisering.

Nästa steg

Aktivera Application Insights Snapshot-felsökningsprogrammet för ditt program: