Application Insights Snapshot Debugger 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, bu yönergeleri kullanarak sorun giderme yapabilirsiniz.
Anlık görüntülerin üretilmesinin pek çok farklı nedeni olabilir. Olası yaygın nedenlerin bazılarını belirlemek için anlık görüntü sistem durumu denetimini çalıştırarak başlayabilirsiniz.
Uygun Snapshot Debugger uç noktasını kullandığınızdan emin olun
Şu anda yalnızca uç nokta değişiklikleri gerektiren bölgeler Azure Kamu ve Azure Çin' dir.
Application Insights SDK 'sını kullanan App Service ve uygulamalar için, aşağıda tanımlanan Snapshot Debugger için desteklenen geçersiz kılmaları kullanarak bağlantı dizesini güncelleştirmeniz gerekir:
| Bağlantı dizesi özelliği | ABD kamu bulutu | Çin bulutu |
|---|---|---|
| Anlık görüntü Tendpoint | 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 bkz. Application Insights belgeleri.
İşlev Uygulaması için host.json aşağıdaki desteklenen geçersiz kılmaları kullanarak öğesini güncelleştirmeniz gerekir:
| Özellik | ABD kamu bulutu | Çin bulutu |
|---|---|---|
| Tendtendpoint | https://snapshot.monitor.azure.us |
https://snapshot.monitor.azure.cn |
Aşağıda host.json ABD kamu bulut Aracısı uç noktası ile güncelleştirilmiş bir örneği 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ü durumu denetimini kullanma
Yaygın olarak karşılaşılan bazı sorunlar açık hata ayıklama anlık görüntüsüne neden görünmüyor. Güncel olmayan Snapshot Collector kullanma, örneğin; günlük karşıya yükleme sınırına ulaşıyor; ya da anlık görüntünün karşıya yüklenmesi uzun zaman almazdır. Sık karşılaşılan sorunları gidermek için anlık görüntü durum denetimini kullanın.
Sizi anlık görüntü sistem durumu denetimine götüren uçtan uca izleme görünümünün özel durum bölmesinde bir bağlantı vardır.

Etkileşimli, sohbet benzeri arabirim, sık karşılaşılan sorunları ve bunları düzeltmenize yardımcı olan yönergeleri arar.

Bu sorunu çözmezse, aşağıdaki el ile sorun giderme adımlarına bakın.
İzleme anahtarını doğrulama
Yayımlanmış uygulamanızda doğru izleme anahtarını kullandığınızdan emin olun. Genellikle, izleme anahtarı ApplicationInsights.config dosyasından okunurdur. değerin portalda gördüğünüz Application Insights kaynağı için izleme anahtarıyla aynı olduğunu doğrulayın.
TLS/SSL istemci ayarlarını denetle (ASP.NET)
bir sanal makinede Azure App Service veya ııs 'de barındırdığı bir ASP.NET uygulamanız varsa, uygulamanız eksik bir SSL güvenlik protokolü nedeniyle Snapshot Debugger hizmetine bağlanamaz.
Snapshot Debugger uç noktası TLS sürüm 1,2 gerektirir. SSL güvenlik protokolleri kümesi, web.config System. Web bölümündeki httpRuntime targetFramework değeri tarafından etkinleştirilen olağandışı bir bölümdür. HttpRuntime targetFramework 4.5.2 veya düşükse, varsayılan olarak TLS 1,2 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. ' targetFramework httpRuntime In 4,6 veya üzeri olarak ayarlandığından emin olun.
<system.web>
...
<httpRuntime targetFramework="4.7.2" />
...
</system.web>
Not
HttpRuntime targetFramework değerini değiştirmek, uygulamanıza uygulanan çalışma zamanı süslerinizi değiştirir ve diğer, hafif davranış değişikliklerine neden olabilir. Bu değişikliği yaptıktan sonra uygulamanızı iyice test ettiğinizden emin olun. Uyumluluk değişikliklerinin tam listesi için bkz. yeniden hedefleme değişiklikleri.
Not
targetframework 4,7 veya üzeri ise Windows kullanılabilir protokolleri belirler. Azure App Service, TLS 1,2 kullanılabilir. Ancak, kendi sanal makinenizi kullanıyorsanız, işletim sisteminde TLS 1,2 ' i 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 'ya bir bağımlı derleme aracılığıyla doğrudan veya dolaylı olarak başvuruyorsa, diğer ortamlar için Snapshot Debugger etkinleştiryönergelerini izleyin.
Tanılama Hizmetleri site uzantısının durum sayfasını denetleyin
Snapshot Debugger portalda Application Insights bölmesi aracılığıyla etkinleştirildiyse, tanılama hizmetleri site uzantısı tarafından etkinleştirilmiştir.
Not
Application Insights Snapshot Debugger birlikte yükleme, .net Core destek ilkesini izler. Desteklenen çalışma zamanları hakkında daha fazla bilgi için bkz. .NET Core destek ilkesi.
Aşağıdaki URL 'ye giderek bu uzantının durum sayfasını kontrol edebilirsiniz: 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 kudu yönetim sitesiyle aynı olacaktır.
Bu durum sayfası, profil oluşturucu ve Snapshot Collector aracılarının yükleme durumunu gösterir. Beklenmeyen bir hata oluşursa, 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 kudu yönetim sitesini kullanabilirsiniz:
- App Service uygulamanızı Azure portal açın.
- Gelişmiş Araçlar' ı seçin veya kudu'yi arayın.
- Git' i seçin.
- Kudu yönetim sitesinde olduktan sonra URL 'de aşağıdakini ekleyin
/DiagnosticServicesve ENTER tuşuna basın. Şu şekilde sona acaktır:https://<kudu-url>/DiagnosticServices
Aşağıda benzer bir durum sayfası görüntülenir: 
NuGet paketinin en son sürümüne yükseltin
Snapshot Debugger nasıl etkinleştirildiğini temel alarak aşağıdaki seçeneklere bakın:
Snapshot Debugger portalda Application Insights bölmesiaracılığıyla etkinleştirildiyse, uygulamanız zaten en son NuGet paketini çalıştırıyor olmalıdır.
Snapshot Debugger, microsoft. applicationınsights. snapshotcollector NuGet paketini ekleyerek etkinleştirilmişse, microsoft. applicationınsights. snapshotcollector 'ın en son sürümünü kullandığınızdan emin olmak için Visual Studio NuGet Paket Yöneticisi kullanın.
En son güncelleştirmeler ve hata düzeltmeleri için sürüm notlarına bakın.
Uploader günlüklerini denetleyin
Bir anlık görüntü oluşturulduktan sonra, diskte bir mini döküm dosyası (. dmp) oluşturulur. ayrı bir uploader işlemi, bu mini döküm dosyasını oluşturur ve Snapshot Debugger depolama Application Insights için ilişkili tüm pdb 'leri birlikte karşıya yükler. Mini döküm başarıyla karşıya yüklendikten sonra diskten silinir. Uploader işleminin günlük dosyaları diskte tutulur. App Service ortamında bu günlükleri ' de bulabilirsiniz D:\Home\LogFiles . Bu günlük dosyalarını bulmak için App Service kudu yönetim sitesini kullanın.
- App Service uygulamanızı Azure portal açın.
- Gelişmiş Araçlar' ı seçin veya kudu'yi arayın.
- Git' i seçin.
- Hata ayıklama konsolu aşağı açılan liste kutusunda cmd' yi seçin.
- Günlük dosyaları' nı seçin.
Veya uzantısıyla başlayan en az bir dosya görmeniz gerekir Uploader_ SnapshotUploader_ .log . Herhangi bir günlük dosyasını indirmek veya bir 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. Uploader yeni bir mini döküm dosyası algıladığında, günlük dosyasına kaydedilir. İşte başarılı bir anlık görüntü ve karşıya yükleme örneği:
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, Microsoft. applicationınsights. snapshotcollector NuGet paketinin 1.2.0 sürümüdür. Önceki sürümlerde, Uploader işlemi çağrılır MinidumpUploader.exe ve günlük daha az ayrıntılıdır.
Önceki örnekte, izleme anahtarı olur c12a605e73c44346a984e00000000000 . Bu değer, uygulamanız için izleme anahtarıyla eşleşmelidir.
Mini döküm, KIMLIĞI olan bir anlık görüntü ile ilişkilendirilir 139e411a23934dc0b9ea08a626db16c5 . Application Insights Analytics 'te ilişkili özel durum kaydını bulmak için bu kimliği daha sonra kullanabilirsiniz.
Yükleyici, 15 dakikada bir daha yeni pdb 'leri tarar. Aşağıda bir örnek verilmiştir:
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 barındırılmayan uygulamalar için, Uploader günlükleri mini dökümler ile aynı klasörlerdir: %TEMP%\Dumps\<ikey> ( <ikey> izleme anahtarınız).
Sorun giderme Cloud Services
Cloud Services, varsayılan geçici klasör, bir mini döküm dosyalarını tutmak için çok küçük olabilir, bu da kayıp anlık görüntülerle önde gelebilir.
Gerekli 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 1 GB toplam çalışma kümesi kullanıyorsa, anlık görüntüleri depolamak için en az 2 GB disk alanı olduğundan emin olun.
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.
Bulut hizmeti tanımı (. csdef) dosyasını düzenleyerek bulut hizmetinize yeni bir yerel kaynak ekleyin. Aşağıdaki örnek, 5 GB boyutunda adlı bir kaynağı tanımlar
SnapshotStore.<LocalResources> <LocalStorage name="SnapshotStore" cleanOnRoleRecycle="false" sizeInMB="5120" /> </LocalResources>Yerel kaynağa işaret eden bir ortam değişkeni eklemek için rolünüzün başlangıç kodunu değiştirin
SnapshotStore. Çalışan rolleri için, kod rolünOnStartyö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_Startyö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 } } }Rolün ApplicationInsights.config dosyasını, tarafından kullanılan geçici klasör konumunu geçersiz kılmak üzere güncelleştirin
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>
Gölge kopya klasörünü geçersiz kılma
Snapshot Collector başladığında, anlık görüntü Uploader işlemini çalıştırmaya uygun diskte bir klasör bulmaya çalışır. Seçilen klasör, gölge kopya klasörü olarak bilinir.
Snapshot Collector, iyi bilinen birkaç Konumu kontrol eder ve anlık görüntü yükleyici ikililerini kopyalama izinlerinin olduğundan emin olur. Aşağıdaki ortam değişkenleri kullanılır:
- Fabric_Folder_App_Temp
- LOCALAPPDATA
- APPDATA
- KOPYALAR
Uygun bir klasör bulunamazsa, "uygun gölge kopya klasörü bulunamadı " hatasını bildiren bir hata raporlar Snapshot Collector.
Kopyalama başarısız olursa, Snapshot Collector bir hata bildirir ShadowCopyFailed .
Uploader başlatılamaz Snapshot Collector bir UploaderCannotStartFromShadowCopy hata bildirir. İletinin gövdesi genellikle içerir System.UnauthorizedAccessException . Bu hata genellikle uygulama daha düşük izinlere sahip bir hesap altında çalıştığı için oluşur. Hesabın, gölge kopya klasörüne yazma izni var, ancak kodu yürütme izni yok.
Bu hatalar genellikle başlangıç sırasında gerçekleşdiğinden, genellikle ExceptionDuringConnect "Uploader başlatılamadı" hatası ortaya çıkar.
Bu hataları geçici olarak çözmek için, yapılandırma seçeneği aracılığıyla gölge kopya klasörünü el ile belirtebilirsiniz ShadowCopyFolder . Örneğin, ApplicationInsights.config kullanarak:
<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, .NET Core uygulaması ile 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 arama kullanın
Bir anlık görüntü oluşturulduğunda, oluşturan özel durum bir anlık görüntü KIMLIĞIYLE etiketlenir. özel durum Application Insights olarak bildirildiğinde bu anlık görüntü kimliği özel bir özellik olarak dahil edilir. Application Insights arama kullanarak, tüm kayıtları ai.snapshot.id özel özelliğe sahip bulabilirsiniz.
- Azure portal Application Insights kaynağına gidin.
- Ara' yı seçin.
ai.snapshot.idArama metin kutusuna yazın ve ENTER tuşuna basın.

bu arama sonuç döndürürse, seçili zaman aralığında Application Insights 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 o KIMLIĞI yazın. Karşıya yüklendiğini bildiğiniz bir anlık görüntü için kayıt bulamazsanız, şu adımları izleyin:
izleme anahtarını doğrulayarak doğru Application Insights kaynağına bakdığınızı bir kez daha kontrol edin.
Uploader günlüğünden zaman damgasını kullanarak, aramanın zaman aralığı filtresini bu zaman aralığını kapsayacak şekilde ayarlayın.
bu anlık görüntü kimliğiyle ilgili bir özel durum görmüyorsanız, özel durum kaydı Application Insights bildirilmedi. Bu durum, uygulamanız anlık görüntüyü aldıktan sonra, ancak özel durum kaydını rapor ettikten sonra kilitlenirse meydana gelir. Bu durumda, Diagnose and solve problems beklenmeyen yeniden başlatmalar veya işlenmemiş özel durumlar olup olmadığını görmek için altındaki App Service günlüklerini denetleyin.
Ağ ara sunucusunu veya güvenlik duvarı kurallarını Düzenle
Uygulamanız bir ara sunucu veya güvenlik duvarı üzerinden Internet 'e bağlanırsa, Snapshot Debugger hizmetiyle iletişim kurmak için kuralları güncelleştirmeniz gerekebilir.
Application Insights Snapshot Debugger tarafından kullanılan ıp 'ler Azure izleyici hizmeti etiketine dahildir. Daha fazla bilgi için bkz. hizmet etiketleri belgeleri.