Application Insights Anlık Görüntü Hata Ayıklayıcısını etkinleştirme veya anlık görüntüleri görüntüleme sorunlarını giderme

Uygulamanız için Application Insights Snapshot Debugger'ı etkinleştirdiyseniz ancak özel durumlar için anlık görüntüler görmüyorsanız, sorun gidermek için bu yönergeleri kullanabilirsiniz.

Anlık görüntülerin oluşturulmamalarının birçok farklı nedeni olabilir. Olası yaygın nedenlerden bazılarını belirlemek için anlık görüntü sistem durumu denetimini çalıştırarak başlayabilirsiniz.

Desteklenmeyen senaryolar

Anlık Görüntü Toplayıcı'nın desteklenmediği senaryoları aşağıda bulabilirsiniz:

Senaryo Yan etkiler Öneri
Uygulamanızda doğrudan (.csproj) Anlık Görüntü Toplayıcı SDK'sını kullandığınızda ve gelişmiş "Birlikte Çalışma" seçeneğini etkinleştirdiğinizde. Yerel Application Insights SDK'sı (Anlık Görüntü Toplayıcı telemetrisi dahil) kaybolur; bu nedenle, kullanılabilir anlık görüntü olmayacaktır.
Uygulamanız ile başlangıçta kilitlenebilir System.ArgumentException: telemetryProcessorTypedoes not implement ITelemetryProcessor
Application Insights özelliği "Birlikte Çalışma" hakkında daha fazla bilgi için bkz. Azure App Service ve ASP.NET Core için Uygulama izleme.
"Birlikte Çalışma" gelişmiş seçeneğini kullanıyorsanız kodsuz Anlık Görüntü Toplayıcı ekleme özelliğini kullanın (Azure portal UX aracılığıyla etkinleştirilir).

Uygun Snapshot Debugger uç noktasını kullandığınızdan emin olun

Şu anda uç nokta değişiklikleri gerektiren tek bölgeler Azure Kamu ve Azure Çin'dir.

Application Insights SDK'sını kullanan App Service ve uygulamalar için, aşağıda tanımlandığı gibi Snapshot Debugger için desteklenen geçersiz kılmaları kullanarak bağlantı dizesi güncelleştirmeniz gerekir:

Bağlantı dizesi özelliği ABD Kamu Bulutu Çin Bulutu
SnapshotEndpoint https://snapshot.monitor.azure.us https://snapshot.monitor.azure.cn

Diğer bağlantı geçersiz kılmaları hakkında daha fazla bilgi için Application Insights belgelerine bakın.

İşlev Uygulaması için aşağıdaki desteklenen geçersiz kılmaları kullanarak öğesini host.json güncelleştirmeniz gerekir:

Özellik ABD Kamu Bulutu Çin Bulutu
AgentEndpoint https://snapshot.monitor.azure.us https://snapshot.monitor.azure.cn

ABD Kamu Bulutu aracı uç noktası ile güncelleştirilmiş bir örnek host.json aşağıda verilmiştir:

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

Anlık görüntü sistem durumu denetimini kullanma

Bazı yaygın sorunlar, Hata AyıklamaYı Aç Anlık Görüntüsünün görünmemesiyle sonuçlanır. Örneğin, güncel olmayan bir Anlık Görüntü Toplayıcı kullanılır; günlük karşıya yükleme sınırına ulaşılır; veya anlık görüntünün yüklenmesi uzun sürüyor olabilir. Sık karşılaşılan sorunları gidermek için Anlık Görüntü Sistem Durumu Denetimi'ni kullanın.

Uçtan uca izleme görünümünün özel durum bölmesinde sizi Anlık Görüntü Durumu Denetimi'ne götüren bir bağlantı vardır.

Anlık görüntü sistem durumu denetiminin nasıl girilir gösteren ekran görüntüsü.

Etkileşimli, sohbet benzeri arabirim, sık karşılaşılan sorunları arar ve bunları düzeltmeniz için size yol gösterir.

Sorunların ve önerilerin nasıl düzeltileceğini listeleyen etkileşimli Sistem Durumu Denetimi penceresini gösteren ekran görüntüsü.

Bu işlem sorunu çözmezse aşağıdaki el ile sorun giderme adımlarına bakın.

İzleme anahtarını doğrulama

Yayımlanan uygulamanızda doğru izleme anahtarını kullandığınızdan emin olun. İzleme anahtarı genellikle ApplicationInsights.config dosyasından okunur. Değerin portalda gördüğünüz Application Insights kaynağının izleme anahtarıyla aynı olduğunu doğrulayın.

31 Mart 2025'te izleme anahtarı alımı desteği sona erecektir. İzleme anahtarı alımı çalışmaya devam edecek, ancak artık özellik için güncelleştirmeler veya destek sağlamayacağız. Yeni özelliklerden yararlanmak için bağlantı dizelerine geçiş.

TLS/SSL istemci ayarlarını denetleme (ASP.NET)

sanal makinede Azure App Service veya IIS'de barındırılan bir ASP.NET uygulamanız varsa, uygulamanız eksik bir SSL güvenlik protokolü nedeniyle Snapshot Debugger hizmetine bağlanamıyor olabilir.

Snapshot Debugger uç noktası TLS sürüm 1.2 gerektirir. SSL güvenlik protokolleri kümesi, bölümündeki web.configdeğerin httpRuntime targetFrameworksystem.web etkinleştirdiği tuhaflıklardan biridir. httpRuntime targetFramework değeri 4.5.2 veya daha düşükse TLS 1.2 varsayılan olarak dahil değildir.

Not

httpRuntime targetFramework Değeri, uygulamanızı oluştururken kullanılan hedef çerçeveden bağımsızdır.

Ayarı denetlemek için web.config dosyanızı açın ve system.web bölümünü bulun. için httpRuntime değerinin targetFramework 4.6 veya üzeri olarak ayarlandığından emin olun.

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

Not

Değerin httpRuntime targetFramework değiştirilmesi, uygulamanıza uygulanan çalışma zamanı ilginçliklerini değiştirir ve diğer ince davranış değişikliklerine neden olabilir. Bu değişikliği yaptıktan sonra uygulamanızı kapsamlı bir şekilde test etmeye özen gösterin. Uyumluluk değişikliklerinin tam listesi için bkz. Değişiklikleri yeniden hedefleme.

Not

targetFramework 4.7 veya sonraki bir sürümse, Windows kullanılabilir protokolleri belirler. Azure App Service'da TLS 1.2 kullanılabilir. Ancak kendi sanal makinenizi kullanıyorsanız işletim sisteminde TLS 1.2'yi etkinleştirmeniz gerekebilir.

.NET Core'un önizleme sürümleri

.NET Core'un önizleme sürümünü kullanıyorsanız veya uygulamanız application Insights SDK'sını bağımlı bir derleme aracılığıyla doğrudan veya dolaylı olarak başvurursa, Diğer ortamlar için Snapshot Debugger'ı etkinleştirme yönergelerini izleyin.

Tanılama Hizmetleri site uzantısının Durum Sayfasını denetleyin

Portaldaki Application Insights bölmesi aracılığıyla Snapshot Debugger etkinleştirildiyse, Tanılama Hizmetleri site uzantısı tarafından etkinleştirilmiştir.

Not

Application Insights Snapshot Debugger'ın kodsuz yüklemesi .NET Core destek ilkesini izler. Desteklenen çalışma zamanları hakkında daha fazla bilgi için bkz. .NET Core Destek İlkesi.

Bu uzantının Durum Sayfasını denetlemek için aşağıdaki URL'ye gidebilirsiniz: https://{site-name}.scm.azurewebsites.net/DiagnosticServices

Not

Durum Sayfası bağlantısının etki alanı buluta bağlı olarak değişir. Bu etki alanı, App Service için Kudu yönetim sitesiyle aynı olacaktır.

Bu Durum Sayfası, Profil Oluşturucu ve Anlık Görüntü Toplayıcı aracılarının yükleme durumunu gösterir. Beklenmeyen bir hata oluştuysa görüntülenir ve nasıl düzeltileceğini gösterir.

Bu Durum Sayfasının temel URL'sini almak için App Service için Kudu yönetim sitesini kullanabilirsiniz:

  1. App Service uygulamanızı Azure portal açın.
  2. Gelişmiş Araçlar'ı seçin veya Kudu'yu arayın.
  3. Git'i seçin.
  4. Kudu yönetim sitesine girdikten sonra URL'ye ekleyin ve Enter tuşuna/DiagnosticServices basın. Bu şekilde sona erecek: https://<kudu-url>/DiagnosticServices.

NuGet paketinin en son sürümüne yükseltme

Snapshot Debugger'ın nasıl etkinleştirildiğine bağlı olarak aşağıdaki seçeneklere bakın:

  • Snapshot Debugger portaldaki Application Insights bölmesi aracılığıyla etkinleştirildiyse, uygulamanız zaten en son NuGet paketini çalıştırıyor olmalıdır.

  • Snapshot Debugger , Microsoft.ApplicationInsights.SnapshotCollector NuGet paketini ekleyerek etkinleştirildiyse, en son sürümünü kullandığınızdan emin olmak için Visual Studio'nun NuGet Paket Yöneticisi'ni Microsoft.ApplicationInsights.SnapshotCollectorkullanın.

En son güncelleştirmeler ve hata düzeltmeleri için sürüm notlarını inceleyin.

Karşıya yükleyen günlüklerini denetleme

Anlık görüntü oluşturulduktan sonra diskte bir minidump dosyası (.dmp) oluşturulur. Ayrı bir karşıya yükleme işlemi bu minidump dosyasını oluşturur ve ilişkili PDB'lerle birlikte Application Insights Snapshot Debugger depolama alanına yükler. Minidump başarıyla karşıya yüklendikten sonra diskten silinir. Karşıya yükleme işleminin günlük dosyaları diskte tutulur. App Service bir ortamda bu günlükleri içinde D:\Home\LogFilesbulabilirsiniz. Bu günlük dosyalarını bulmak için App Service için Kudu yönetim sitesini kullanın.

  1. App Service uygulamanızı Azure portal açın.
  2. Gelişmiş Araçlar'ı seçin veya Kudu'yu arayın.
  3. Git'i seçin.
  4. Hata ayıklama konsolu açılan listesinde CMD'yi seçin.
  5. LogFiles'ı seçin.

veya SnapshotUploader_ ile Uploader_ başlayan bir ada ve bir uzantıya sahip en az bir .log dosya görmeniz gerekir. Günlük dosyalarını indirmek veya tarayıcıda açmak için uygun simgeyi seçin. Dosya adı, App Service örneğini tanımlayan benzersiz bir sonek içerir. App Service örneğiniz birden fazla makinede barındırılıyorsa, her makine için ayrı günlük dosyaları vardır. Yükleyici yeni bir minidump dosyası algıladığında günlük dosyasına kaydedilir. Başarılı bir anlık görüntü ve karşıya yükleme örneği aşağıda verilmiştir:

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

Not

Yukarıdaki örnek, NuGet paketinin 1.2.0 sürümünden alınmıştı Microsoft.ApplicationInsights.SnapshotCollector . Önceki sürümlerde karşıya yükleme işlemi çağrılır MinidumpUploader.exe ve günlük daha az ayrıntılıdır.

Önceki örnekte izleme anahtarı şeklindedir c12a605e73c44346a984e00000000000. Bu değer uygulamanızın izleme anahtarıyla eşleşmelidir. Minidump, kimliğine 139e411a23934dc0b9ea08a626db16c5sahip bir anlık görüntüyle ilişkilendirilir. Bu kimliği daha sonra Application Insights Analytics'te ilişkili özel durum kaydını bulmak için kullanabilirsiniz.

Karşıya yükleyen, yaklaşık 15 dakikada bir yeni PDB'leri tarar. İşte bir örnek:

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

App Service'da barındırilmeyen uygulamalar için, yükleyici günlükleri minidumps ile aynı klasördedir: %TEMP%\Dumps\<ikey> (<ikey>burada izleme anahtarınızdır).

Cloud Services sorunlarını giderme

Cloud Services'da, varsayılan geçici klasör minidump dosyalarını barındıramayacak kadar küçük olabilir ve bu da anlık görüntülerin kaybolmasına neden olabilir.

Gereken alan, uygulamanızın toplam çalışma kümesine ve eşzamanlı anlık görüntü sayısına bağlıdır.

32 bit ASP.NET web rolünün çalışma kümesi genellikle 200 MB ile 500 MB arasındadır. En az iki eşzamanlı anlık görüntüye izin verin.

Örneğin, uygulamanız toplam 1 GB çalışma kümesi kullanıyorsa, anlık görüntüleri depolamak için en az 2 GB disk alanı olduğundan emin olmanız gerekir.

Bulut Hizmeti rolünüzü anlık görüntüler için ayrılmış bir yerel kaynakla yapılandırmak için bu adımları izleyin.

  1. Bulut Hizmeti tanımı (.csdef) dosyasını düzenleyerek Bulut Hizmetinize yeni bir yerel kaynak ekleyin. Aşağıdaki örnek, adlı SnapshotStore ve boyutu 5 GB olan bir kaynağı tanımlar.

    <LocalResources>
      <LocalStorage name="SnapshotStore" cleanOnRoleRecycle="false" sizeInMB="5120" />
    </LocalResources>
    
  2. Yerel kaynağa işaret eden bir ortam değişkeni eklemek için SnapshotStore rolünüzün başlangıç kodunu değiştirin. Çalışan Rolleri için kod rolünüzün OnStart yöntemine eklenmelidir:

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

    Web Rolleri (ASP.NET) için kod web uygulamanızın Application_Start yöntemine eklenmelidir:

    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. tarafından SnapshotCollectorkullanılan geçici klasör konumunu geçersiz kılmak için rolünüzün ApplicationInsights.config dosyasını güncelleştirin.

    <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>
    

Gölge Kopya klasörünü geçersiz kılma

Anlık Görüntü Toplayıcı başlatıldığında, diskte Anlık Görüntü Yükleyici işlemini çalıştırmaya uygun bir klasör bulmaya çalışır. Seçilen klasör Gölge Kopya klasörü olarak bilinir.

Anlık Görüntü Toplayıcı iyi bilinen birkaç konumu denetler ve Anlık Görüntü Karşıya Yükleyen ikili dosyalarını kopyalama izinlerine sahip olduğundan emin olur. Aşağıdaki ortam değişkenleri kullanılır:

  • Fabric_Folder_App_Temp
  • LOCALAPPDATA
  • APPDATA
  • TEMP

Uygun bir klasör bulunamazsa, Anlık Görüntü Toplayıcı "Uygun bir gölge kopya klasörü bulunamadı" hatası bildirir.

Kopyalama başarısız olursa, Anlık Görüntü Toplayıcı bir ShadowCopyFailed hata bildirir.

Karşıya yükleyen başlatılamıyorsa, Anlık Görüntü Toplayıcı bir UploaderCannotStartFromShadowCopy hata bildirir. İletinin gövdesi genellikle içerir System.UnauthorizedAccessException. Bu hata genellikle uygulamanın azaltılmış izinlere sahip bir hesap altında çalışması nedeniyle oluşur. Hesabın gölge kopya klasörüne yazma izni vardır, ancak kod yürütme izni yoktur.

Bu hatalar genellikle başlatma sırasında oluştuğundan, genellikle "Yükleyici başlatılamadı" hatasını alır ExceptionDuringConnect .

Bu hataları geçici olarak çözmek için gölge kopya klasörünü yapılandırma seçeneği aracılığıyla ShadowCopyFolder el ile belirtebilirsiniz. Örneğin, ApplicationInsights.configkullanarak:

<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>

Veya bir .NET Core uygulamasıyla appsettings.json kullanıyorsanız:

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

Anlık görüntülerle özel durumları bulmak için Application Insights aramasını kullanma

Anlık görüntü oluşturulduğunda, oluşturan özel durum bir anlık görüntü kimliğiyle etiketlenmiş durumdadır. Özel durum Application Insights'a bildirildiğinde bu anlık görüntü kimliği özel bir özellik olarak eklenir. Application Insights'ta Arama kullanarak, özel özelliğe sahip ai.snapshot.id tüm kayıtları bulabilirsiniz.

  1. Azure portal Application Insights kaynağınıza göz atın.
  2. Arama'ı seçin.
  3. Arama metin kutusuna yazın ai.snapshot.id ve Enter tuşuna basın.

Portalda anlık görüntü kimliğiyle telemetri aramasını gösteren ekran görüntüsü.

Bu arama hiçbir sonuç döndürmezse, seçilen zaman aralığında Application Insights'a hiçbir anlık görüntü bildirilmemiştir.

Yükleyici günlüklerinden belirli bir anlık görüntü kimliğini aramak için Arama kutusuna bu kimliği yazın. Karşıya yüklendiğini bildiğiniz bir anlık görüntünün kayıtlarını bulamıyorsanız şu adımları izleyin:

  1. İzleme anahtarını doğrulayarak doğru Application Insights kaynağına baktığınızı bir kez daha denetleyin.

  2. Yükleyici günlüğündeki zaman damgasını kullanarak aramanın Zaman Aralığı filtresini bu zaman aralığını kapsayacak şekilde ayarlayın.

Yine de bu anlık görüntü kimliğine sahip bir özel durum görmüyorsanız, özel durum kaydı Application Insights'a bildirilmiş değildir. Uygulamanız anlık görüntüyü aldıktan sonra ancak özel durum kaydını bildirmeden önce kilitlendiyse bu durum oluşabilir. Bu durumda, beklenmeyen yeniden başlatmalar veya işlenmeyen özel durumlar olup olmadığını görmek için altındaki Diagnose and solve problems App Service günlüklerini denetleyin.

Ağ proxy'si veya güvenlik duvarı kurallarını düzenleme

Uygulamanız bir ara sunucu veya güvenlik duvarı aracılığıyla İnternet'e bağlanıyorsa, Snapshot Debugger hizmetiyle iletişim kurmak için kuralları güncelleştirmeniz gerekebilir.

Application Insights Snapshot Debugger tarafından kullanılan IP'ler Azure İzleyici hizmet etiketine eklenir. Daha fazla bilgi için bkz. Hizmet Etiketleri belgeleri.

Yardım için bize ulaşın

Sorularınız veya yardıma ihtiyacınız varsa bir destek isteği oluşturun veya Azure topluluk desteği isteyin. Ürün geri bildirimini Azure geri bildirim topluluğuna da gönderebilirsiniz.