Felsöka problem med att aktivera Application Insights Snapshot Debugger eller visa ögonblicksbilder

Om du har aktiverat Application Insights Snapshot Debugger för ditt program, men inte ser ögonblicksbilder för undantag, kan du använda de här anvisningarna för att felsöka.

Det kan finnas många olika orsaker till att ögonblicksbilder inte genereras. Du kan börja med att köra hälsokontrollen för ögonblicksbilder för att identifiera några av de möjliga vanliga orsakerna.

Scenarier som inte stöds

Nedan kan du se scenarier där ögonblicksbildinsamlaren inte stöds:

Scenario Biverkningar Rekommendation
När du använder SDK:et för ögonblicksbildinsamlaren i ditt program direkt (.csproj) och du har aktiverat förhandsalternativet "Interop". Den lokala Application Insights-SDK:t (inklusive telemetri för ögonblicksbildssamlaren) kommer att gå förlorad. Därför kommer inga ögonblicksbilder att vara tillgängliga.
Programmet kan krascha vid start med System.ArgumentException: telemetryProcessorTypedoes not implement ITelemetryProcessor
Mer information om Application Insights-funktionen "Interop" finns i Programövervakning för Azure App Service och ASP.NET Core.
Om du använder förhandsalternativet "Interop" använder du den kodlösa inmatningen av ögonblicksbildinsamlaren (aktiverad via Azure Portal UX).

Kontrollera att du använder rätt slutpunkt för ögonblicksbildsfelsökaren

För närvarande är de enda regioner som kräver slutpunktsändringar Azure Government och Azure Kina.

För App Service och program som använder Application Insights SDK måste du uppdatera anslutningssträng med hjälp av de åsidosättningar som stöds för Snapshot Debugger enligt definitionen nedan:

Egenskap för anslutningssträng US Government Cloud China Cloud
SnapshotEndpoint https://snapshot.monitor.azure.us https://snapshot.monitor.azure.cn

Mer information om andra åsidosättningar för anslutningar finns i Application Insights-dokumentationen.

För funktionsappen host.json måste du uppdatera med hjälp av de åsidosättningar som stöds nedan:

Egenskap US Government Cloud China Cloud
AgentEndpoint https://snapshot.monitor.azure.us https://snapshot.monitor.azure.cn

Här är ett exempel på den host.json uppdaterade med us Government Cloud-agentens slutpunkt:

{
  "version": "2.0",
  "logging": {
    "applicationInsights": {
      "samplingExcludedTypes": "Request",
      "samplingSettings": {
        "isEnabled": true
      },
      "snapshotConfiguration": {
        "isEnabled": true,
        "agentEndpoint": "https://snapshot.monitor.azure.us"
      }
    }
  }
}

Använda hälsokontrollen för ögonblicksbilder

Flera vanliga problem gör att ögonblicksbilden av den öppna felsökningen inte visas. Till exempel används en inaktuell ögonblicksbildinsamlare. den dagliga uppladdningsgränsen har uppnåtts. eller kanske tar ögonblicksbilden bara lång tid att ladda upp. Använd hälsokontrollen för ögonblicksbilder för att felsöka vanliga problem.

Det finns en länk i undantagsfönstret i spårningsvyn från slutpunkt till slutpunkt som tar dig till hälsokontrollen för ögonblicksbilder.

Skärmbild som visar hur du anger hälsokontroll för ögonblicksbilder.

Det interaktiva, chattliknande gränssnittet letar efter vanliga problem och hjälper dig att åtgärda dem.

Skärmbild som visar det interaktiva hälsokontrollfönstret med problem och förslag på hur du åtgärdar dem.

Om det inte löser problemet kan du läsa följande manuella felsökningssteg.

Verifiera instrumenteringsnyckeln

Kontrollera att du använder rätt instrumentationsnyckel i det publicerade programmet. Vanligtvis läss instrumentationsnyckeln från ApplicationInsights.config-filen . Kontrollera att värdet är detsamma som instrumentationsnyckeln för Application Insights-resursen som visas i portalen.

Den 31 mars 2025 upphör stödet för inmatning av instrumenteringsnycklar. Inmatningen av instrumenteringsnyckeln fortsätter att fungera, men vi kommer inte längre att tillhandahålla uppdateringar eller stöd för funktionen. Övergång till anslutningssträngar för att dra nytta av nya funktioner.

Kontrollera TLS/SSL-klientinställningar (ASP.NET)

Om du har ett ASP.NET program som finns i Azure App Service eller i IIS på en virtuell dator kan det hända att programmet inte kan ansluta till tjänsten Snapshot Debugger på grund av ett SSL-säkerhetsprotokoll som saknas.

Slutpunkten för ögonblicksbildsfelsökaren kräver TLS version 1.2. Uppsättningen SSL-säkerhetsprotokoll är en av de egenheter som aktiveras av httpRuntime targetFramework värdet i system.web avsnittet i web.config. httpRuntime targetFramework Om är 4.5.2 eller lägre ingår inte TLS 1.2 som standard.

Obs!

Värdet httpRuntime targetFramework är oberoende av det målramverk som används när du skapar ditt program.

Om du vill kontrollera inställningen öppnar du filenweb.config och letar upp avsnittet system.web. Kontrollera att för httpRuntime är inställt på targetFramework 4.6 eller senare.

<system.web>
   ...
   <httpRuntime targetFramework="4.7.2" />
   ...
</system.web>

Obs!

Om du httpRuntime targetFramework ändrar värdet ändras körningens egenheter som tillämpas på ditt program och kan orsaka andra, subtila beteendeändringar. Se till att testa programmet noggrant när du har gjort den här ändringen. En fullständig lista över kompatibilitetsändringar finns i Rikta om ändringar.

Obs!

targetFramework Om är 4.7 eller en senare version bestämmer Windows vilka protokoll som är tillgängliga. I Azure App Service är TLS 1.2 tillgängligt. Men om du använder en egen virtuell dator kan du behöva aktivera TLS 1.2 i operativsystemet.

Förhandsversioner av .NET Core

Om du använder en förhandsversion av .NET Core eller om ditt program refererar till Application Insights SDK, direkt eller indirekt via en beroende sammansättning, följer du anvisningarna för Aktivera ögonblicksbildfelsökare för andra miljöer.

Kontrollera statussidan för diagnostiktjänsttillägget

Om Snapshot Debugger har aktiverats via application insights-fönstret i portalen aktiverades det av webbplatstillägget För diagnostiktjänster.

Obs!

Kodlös installation av Application Insights Snapshot Debugger följer supportprincipen för .NET Core. Mer information om körning som stöds finns i Supportprincip för .NET Core.

Du kan kontrollera statussidan för det här tillägget genom att gå till följande URL: https://{site-name}.scm.azurewebsites.net/DiagnosticServices

Obs!

Domänen för länken Statussida varierar beroende på molnet. Den här domänen är samma som Kudu-hanteringsplatsen för App Service.

Den här statussidan visar installationstillståndet för agenterna Profiler och Snapshot Collector. Om det uppstod ett oväntat fel visas det och visar hur du åtgärdar det.

Du kan använda Kudu-hanteringswebbplatsen för App Service för att hämta bas-URL:en för den här statussidan:

  1. Öppna App Service-programmet i Azure Portal.
  2. Välj Avancerade verktyg eller sök efter Kudu.
  3. Välj .
  4. När du är på Kudu-hanteringswebbplatsen lägger du till /DiagnosticServices i URL:en och trycker på Retur. Det slutar så här: https://<kudu-url>/DiagnosticServices.

Uppgradera till den senaste versionen av NuGet-paketet

Se följande alternativ baserat på hur felsökningsprogrammet för ögonblicksbilder aktiverades:

De senaste uppdateringarna och felkorrigeringarna finns i viktig information.

Kontrollera uppladdningsloggarna

När en ögonblicksbild har skapats skapas en minidump-fil (.dmp) på disken. En separat uppladdningsprocess skapar minidumpfilen och laddar upp den, tillsammans med eventuella associerade PDF-filer, till Application Insights Snapshot Debugger Storage. När minidumpen har laddats upp tas den bort från disken. Loggfilerna för uppladdningsprocessen sparas på disken. I en App Service miljö hittar du loggarna i D:\Home\LogFiles. Använd Kudu-hanteringswebbplatsen för App Service för att hitta dessa loggfiler.

  1. Öppna App Service-programmet i Azure Portal.
  2. Välj Avancerade verktyg eller sök efter Kudu.
  3. Välj .
  4. I listrutan Felsökningskonsol väljer du CMD.
  5. Välj LogFiles.

Du bör se minst en fil med ett namn som börjar med Uploader_ eller SnapshotUploader_ och ett .log tillägg. Välj lämplig ikon för att ladda ned loggfiler eller öppna dem i en webbläsare. Filnamnet innehåller ett unikt suffix som identifierar App Service-instansen. Om din App Service-instans finns på fler än en dator finns det separata loggfiler för varje dator. När uppladdaren identifierar en ny minidump-fil registreras den i loggfilen. Här är ett exempel på en lyckad ögonblicksbild och uppladdning:

SnapshotUploader.exe Information: 0 : Received Fork request ID 139e411a23934dc0b9ea08a626db16c5 from process 6368 (Low pri)
    DateTime=2018-03-09T01:42:41.8571711Z
SnapshotUploader.exe Information: 0 : Creating minidump from Fork request ID 139e411a23934dc0b9ea08a626db16c5 from process 6368 (Low pri)
    DateTime=2018-03-09T01:42:41.8571711Z
SnapshotUploader.exe Information: 0 : Dump placeholder file created: 139e411a23934dc0b9ea08a626db16c5.dm_
    DateTime=2018-03-09T01:42:41.8728496Z
SnapshotUploader.exe Information: 0 : Dump available 139e411a23934dc0b9ea08a626db16c5.dmp
    DateTime=2018-03-09T01:42:45.7525022Z
SnapshotUploader.exe Information: 0 : Successfully wrote minidump to D:\local\Temp\Dumps\c12a605e73c44346a984e00000000000\139e411a23934dc0b9ea08a626db16c5.dmp
    DateTime=2018-03-09T01:42:45.7681360Z
SnapshotUploader.exe Information: 0 : Uploading D:\local\Temp\Dumps\c12a605e73c44346a984e00000000000\139e411a23934dc0b9ea08a626db16c5.dmp, 214.42 MB (uncompressed)
    DateTime=2018-03-09T01:42:45.7681360Z
SnapshotUploader.exe Information: 0 : Upload successful. Compressed size 86.56 MB
    DateTime=2018-03-09T01:42:59.6184651Z
SnapshotUploader.exe Information: 0 : Extracting PDB info from D:\local\Temp\Dumps\c12a605e73c44346a984e00000000000\139e411a23934dc0b9ea08a626db16c5.dmp.
    DateTime=2018-03-09T01:42:59.6184651Z
SnapshotUploader.exe Information: 0 : Matched 2 PDB(s) with local files.
    DateTime=2018-03-09T01:42:59.6809606Z
SnapshotUploader.exe Information: 0 : Stamp does not want any of our matched PDBs.
    DateTime=2018-03-09T01:42:59.8059929Z
SnapshotUploader.exe Information: 0 : Deleted D:\local\Temp\Dumps\c12a605e73c44346a984e00000000000\139e411a23934dc0b9ea08a626db16c5.dmp
    DateTime=2018-03-09T01:42:59.8530649Z

Obs!

Exemplet ovan är från version 1.2.0 av Microsoft.ApplicationInsights.SnapshotCollector NuGet-paketet. I tidigare versioner anropas MinidumpUploader.exe uppladdningsprocessen och loggen är mindre detaljerad.

I föregående exempel är c12a605e73c44346a984e00000000000instrumentationsnyckeln . Det här värdet ska matcha instrumentationsnyckeln för ditt program. Minidumpen är associerad med en ögonblicksbild med ID:t 139e411a23934dc0b9ea08a626db16c5. Du kan använda det här ID:t senare för att hitta den associerade undantagsposten i Application Insights Analytics.

Uppladdaren söker efter nya PDF-filer ungefär en gång var 15:e minut. Här är ett exempel:

SnapshotUploader.exe Information: 0 : PDB rescan requested.
    DateTime=2018-03-09T01:47:19.4457768Z
SnapshotUploader.exe Information: 0 : Scanning D:\home\site\wwwroot for local PDBs.
    DateTime=2018-03-09T01:47:19.4457768Z
SnapshotUploader.exe Information: 0 : Local PDB scan complete. Found 2 PDB(s).
    DateTime=2018-03-09T01:47:19.4614027Z
SnapshotUploader.exe Information: 0 : Deleted PDB scan marker : D:\local\Temp\Dumps\c12a605e73c44346a984e00000000000\6368.pdbscan
    DateTime=2018-03-09T01:47:19.4614027Z

För program som inte finns i App Service finns uppladdningsloggarna i samma mapp som minidumps: %TEMP%\Dumps\<ikey> (där <ikey> är instrumentationsnyckeln).

Felsöka Cloud Services

I Cloud Services kan den tillfälliga standardmappen vara för liten för att innehålla minidump-filerna, vilket leder till förlorade ögonblicksbilder.

Det utrymme som behövs beror på den totala arbetsuppsättningen för ditt program och antalet samtidiga ögonblicksbilder.

Arbetsuppsättningen för en 32-bitars ASP.NET webbroll är vanligtvis mellan 200 MB och 500 MB. Tillåt minst två samtidiga ögonblicksbilder.

Om ditt program till exempel använder 1 GB totalt arbetsminne bör du se till att det finns minst 2 GB diskutrymme för att lagra ögonblicksbilder.

Följ de här stegen för att konfigurera molntjänstrollen med en dedikerad lokal resurs för ögonblicksbilder.

  1. Lägg till en ny lokal resurs i molntjänsten genom att redigera cloud service-definitionsfilen (.csdef). I följande exempel definieras en resurs som heter SnapshotStore med storleken 5 GB.

    <LocalResources>
      <LocalStorage name="SnapshotStore" cleanOnRoleRecycle="false" sizeInMB="5120" />
    </LocalResources>
    
  2. Ändra din rolls startkod för att lägga till en miljövariabel som pekar på den lokala resursen SnapshotStore . För Arbetsroller ska koden läggas till i din rolls OnStart -metod:

    public override bool OnStart()
    {
        Environment.SetEnvironmentVariable("SNAPSHOTSTORE", RoleEnvironment.GetLocalResource("SnapshotStore").RootPath);
        return base.OnStart();
    }
    

    För webbroller (ASP.NET) ska koden läggas till i webbprogrammets Application_Start metod:

    using Microsoft.WindowsAzure.ServiceRuntime;
    using System;
    
    namespace MyWebRoleApp
    {
        public class MyMvcApplication : System.Web.HttpApplication
        {
           protected void Application_Start()
           {
              Environment.SetEnvironmentVariable("SNAPSHOTSTORE", RoleEnvironment.GetLocalResource("SnapshotStore").RootPath);
              // TODO: The rest of your application startup code
           }
        }
    }
    
  3. Uppdatera ApplicationInsights.config-filen för din roll för att åsidosätta den tillfälliga mappplatsen som används av SnapshotCollector.

    <TelemetryProcessors>
     <Add Type="Microsoft.ApplicationInsights.SnapshotCollector.SnapshotCollectorTelemetryProcessor, Microsoft.ApplicationInsights.SnapshotCollector">
       <!-- Use the SnapshotStore local resource for snapshots -->
       <TempFolder>%SNAPSHOTSTORE%</TempFolder>
       <!-- Other SnapshotCollector configuration options -->
     </Add>
    </TelemetryProcessors>
    

Åsidosätt mappen Shadow Copy

När ögonblicksbildinsamlaren startas försöker den hitta en mapp på disken som är lämplig för att köra uppladdningsprocessen för ögonblicksbilder. Den valda mappen kallas för mappen Shadow Copy.

Ögonblicksbildinsamlaren kontrollerar några välkända platser och kontrollerar att den har behörighet att kopiera binärfilerna för snapshot uploader. Följande miljövariabler används:

  • Fabric_Folder_App_Temp
  • LOCALAPPDATA
  • APPDATA
  • TEMP

Om det inte går att hitta en lämplig mapp rapporterar Snapshot Collector ett fel med texten "Det gick inte att hitta en lämplig skuggkopiemapp".

Om kopieringen misslyckas rapporterar Ögonblicksbildinsamlaren ett ShadowCopyFailed fel.

Om uppladdaren inte kan startas rapporterar Snapshot Collector ett UploaderCannotStartFromShadowCopy fel. Brödtexten i meddelandet innehåller System.UnauthorizedAccessExceptionofta . Det här felet beror vanligtvis på att programmet körs under ett konto med begränsad behörighet. Kontot har behörighet att skriva till skuggkopiemappen, men det har inte behörighet att köra kod.

Eftersom dessa fel vanligtvis inträffar under starten följs de vanligtvis av ett ExceptionDuringConnect fel som säger "Uppladdaren kunde inte starta".

Om du vill undvika dessa fel kan du ange skuggkopiemappen manuellt via konfigurationsalternativet ShadowCopyFolder . Du kan till exempel använda ApplicationInsights.config:

<TelemetryProcessors>
 <Add Type="Microsoft.ApplicationInsights.SnapshotCollector.SnapshotCollectorTelemetryProcessor, Microsoft.ApplicationInsights.SnapshotCollector">
   <!-- Override the default shadow copy folder. -->
   <ShadowCopyFolder>D:\SnapshotUploader</ShadowCopyFolder>
   <!-- Other SnapshotCollector configuration options -->
 </Add>
</TelemetryProcessors>

Eller om du använder appsettings.json med ett .NET Core-program:

{
  "ApplicationInsights": {
    "InstrumentationKey": "<your instrumentation key>"
  },
  "SnapshotCollectorConfiguration": {
    "ShadowCopyFolder": "D:\\SnapshotUploader"
  }
}

Använda Application Insights-sökning för att hitta undantag med ögonblicksbilder

När en ögonblicksbild skapas taggas utlöse-undantaget med ett ögonblicksbilds-ID. Det ögonblicksbilds-ID:t ingår som en anpassad egenskap när undantaget rapporteras till Application Insights. Med hjälp av Search i Application Insights kan du hitta alla poster med den ai.snapshot.id anpassade egenskapen.

  1. Bläddra till din Application Insights-resurs i Azure Portal.
  2. Välj Sök.
  3. Skriv ai.snapshot.id i textrutan Search och tryck på Retur.

Skärmbild som visar sökning efter telemetri med ett ögonblicksbilds-ID i portalen.

Om den här sökningen inte returnerar några resultat rapporterades inga ögonblicksbilder till Application Insights inom det valda tidsintervallet.

Om du vill söka efter ett specifikt ögonblicksbilds-ID från uppladdningsloggarna skriver du det ID:t i rutan Search. Om du inte hittar poster för en ögonblicksbild som du vet har laddats upp följer du dessa steg:

  1. Kontrollera att du tittar på rätt Application Insights-resurs genom att verifiera instrumentationsnyckeln.

  2. Justera tidsintervallfiltret för sökningen för att täcka det tidsintervallet med hjälp av tidsstämpeln från uppladdningsloggen.

Om du fortfarande inte ser ett undantag med det ögonblicksbilds-ID:t rapporterades inte undantagsposten till Application Insights. Den här situationen kan inträffa om ditt program kraschade efter att det tog ögonblicksbilden men innan den rapporterade undantagsposten. I det här fallet kontrollerar du App Service loggarna under Diagnose and solve problems för att se om det fanns oväntade omstarter eller ohanterade undantag.

Redigera nätverksproxy eller brandväggsregler

Om ditt program ansluter till Internet via en proxy eller en brandvägg kan du behöva uppdatera reglerna för att kommunicera med tjänsten Snapshot Debugger.

IP-adresser som används av Application Insights Snapshot Debugger ingår i tjänsttaggen Azure Monitor. Mer information finns i dokumentationen om tjänsttaggar.

Kontakta oss för att få hjälp

Om du har frågor eller behöver hjälp skapar du en supportförfrågan eller frågar Azure community support. Du kan också skicka produktfeedback till Azure-feedbackcommunityn.