Snapshot Debugger kullanarak .NET uygulamalarında hata ayıklama özel durumları
Etkinleştirildiğinde Snapshot Debugger, canlı .NET uygulamanızda özel durum oluştuğunda kaynak kodun ve değişkenlerin hata ayıklama anlık görüntüsünü otomatik olarak toplar. Application Insights'ta Anlık Görüntü Hata Ayıklayıcısı:
- Web uygulamanızdan sistem tarafından oluşturulan günlükleri izler.
- En çok oluşturan özel durumlarınızdaki anlık görüntüleri toplar.
- Üretimdeki sorunları tanılamak için ihtiyacınız olan bilgileri sağlar.
Snapshot Debugger ve Snapshot Uploader işlemleri hakkında daha fazla bilgi edinin.
Desteklenen uygulamalar ve ortamlar
Bu bölümde desteklenen uygulamalar ve ortamlar listelenir.
Uygulamalar
Anlık görüntü koleksiyonu şu durumlarda kullanılabilir:
- .NET Framework 4.6.2 ve daha yeni sürümler.
- Windows'ta .NET 6.0 veya üzeri .
Ortamlar
Aşağıdaki ortamlar desteklenir:
- Azure App Service
- Azure Functions
- İşletim sistemi ailesi 4 veya üzerini çalıştıran Azure Cloud Services
- Windows Server 2012 R2 veya üzeri üzerinde çalışan Azure Service Fabric
- Windows Server 2012 R2 veya üzerini çalıştıran Azure Sanal Makineler ve Azure Sanal Makine Ölçek Kümeleri
- Windows Server 2012 R2 veya üzeri ya da Windows 8.1 veya üzerini çalıştıran şirket içi sanal veya fiziksel makineler
Not
İstemci uygulamaları (örneğin, WPF, Windows Forms veya UWP) desteklenmez.
Snapshot Debugger kullanma önkoşulları
Paketler ve yapılandırmalar
- Anlık Görüntü Toplayıcı NuGet paketini uygulamanıza ekleyin.
- içinde
ApplicationInsights.config
koleksiyon parametrelerini yapılandırın.
İzinler
- Hedef Application Insights Anlık Görüntüsü için Application Insights Anlık Görüntü Hata Ayıklayıcısı rolüne eklendiğini doğrulayın.
Snapshot Debugger nasıl çalışır?
Snapshot Debugger, Application Insights telemetri işlemcisi olarak uygulanır. Uygulamanız çalıştığında, Snapshot Debugger telemetri işlemcisi uygulamanızın sistem tarafından oluşturulan günlükler işlem hattına eklenir.
Önemli
Anlık görüntüler, değişken ve parametre değerlerinde kişisel verileri veya diğer hassas bilgileri içerebilir. Anlık görüntü verileri Application Insights kaynağınızla aynı bölgede depolanır.
Anlık Görüntü Hata Ayıklayıcısı işlemi
Snapshot Debugger işlemi yöntemiyle TrackException
başlar ve biter. İşlem anlık görüntüsü, çalışan işlemin askıya alınmış bir kopyasıdır, böylece kullanıcılarınız çok az kesinti yaşamaz. Tipik bir senaryoda:
Uygulamanız oluşturur
TrackException
.Snapshot Debugger, olaya abone
AppDomain.CurrentDomain.FirstChanceException
olarak özel durumları izler.Sorun kimliği için bir sayaç artırılır.
- Sayaç değere
ThresholdForSnapshotting
ulaştığında, sorun kimliği bir koleksiyon planına eklenir.
Not
Varsayılan
ThresholdForSnapshotting
en düşük değer 1'dir. Bu değerle, bir anlık görüntü oluşturulmadan önce uygulamanızın aynı özel durumu iki kez tetiklemiş olması gerekir.- Sayaç değere
Özel durum olayının sorun kimliği hesaplanır ve koleksiyon planındaki sorun kimlikleriyle karşılaştırılır.
Sorun kimlikleri arasında bir eşleşme varsa, çalışan işlemin anlık görüntüsü oluşturulur.
- Anlık görüntüye benzersiz bir tanımlayıcı atanır ve özel durum bu tanımlayıcıyla damgalanır.
Not
Anlık görüntü oluşturma hızı ayarıyla
SnapshotsPerTenMinutesLimit
sınırlıdır. Varsayılan olarak, sınır her 10 dakikada bir anlık görüntüdür.İşleyici döndürdüğünde
FirstChanceException
, oluşan özel durum normal şekilde işlenir.Özel durum yöntemine
TrackException
yeniden ulaşır ve anlık görüntü tanımlayıcısıyla birlikte Application Insights'a bildirilir.
Not
Visual Studio'da true
hata ayıklarken anlık görüntüler oluşturmak istiyorsanız olarak ayarlayınIsEnabledInDeveloperMode
.
Anlık Görüntü Yükleyici işlemi
Anlık Görüntü Hata Ayıklayıcısı işlemi çalışmaya ve çok az kesinti olan kullanıcılara trafik sunmaya devam ederken, anlık görüntü Anlık Görüntü Yükleyici işlemine devredilir. Tipik bir senaryoda Snapshot Uploader:
Minidump oluşturur.
Mini simgeyi, ilgili sembol (.pdb) dosyalarıyla birlikte Application Insights'a yükler.
Not
Günde en fazla 50 anlık görüntü karşıya yüklenemez.
Snapshot Debugger'ı etkinleştirdiyseniz ancak anlık görüntüler görmüyorsanız Sorun Giderme kılavuzuna bakın.
Anlık Görüntü Hata Ayıklayıcısını Yükseltme
Anlık Görüntü Hata Ayıklayıcısı, yerleşik, önceden yüklenmiş Application Insights site uzantısı aracılığıyla otomatik olarak yükseltilir.
Snapshot Debugger'ı güncel tutmak için application insights site uzantısını el ile ekleme kullanım dışı bırakılır.
Genel Masraf
Snapshot Debugger üretim ortamlarında kullanılmak üzere tasarlanmıştır. Varsayılan ayarlar, uygulamalarınız üzerindeki etkiyi en aza indirmek için hız sınırlarını içerir.
Ancak Anlık Görüntü Hata Ayıklayıcısı ile ilişkilendirilmiş küçük CPU, bellek ve G/Ç yüküyle karşılaşabilirsiniz, örneğin:
- Uygulamanızda bir özel durum oluştuğunda
- Özel durum işleyicisi anlık görüntü oluşturmaya karar verirse
- Çağrıldığında
TrackException
Snapshot Debugger tarafından yakalanan verileri depolamak için ek maliyet yoktur.
Anlık Görüntü Hata Ayıklayıcısı ek yüküyle karşılaşabileceğiniz örnek senaryolara bakın.
Sınırlamalar
Bu bölümde Snapshot Debugger ile ilgili sınırlamalar ele alınmaktadır.
Veri saklama
Hata ayıklama anlık görüntüleri 15 gün boyunca depolanır. Varsayılan veri saklama ilkesi, uygulama başına temelinde ayarlanır. Bu değeri artırmanız gerekiyorsa Azure portalında bir destek olayı açarak artış isteyebilirsiniz. Her Application Insights örneği için günde en fazla 50 anlık görüntüye izin verilir.
Sembolleri yayımlama
Snapshot Debugger, üretim sunucusundaki sembol dosyalarının şunların yapılmasını gerektirir:
- Değişkenlerin kodunu çözme
- Visual Studio'da hata ayıklama deneyimi sağlama
Varsayılan olarak, Visual Studio 2017 sürüm 15.2+ App Service'e yayımlandığında yayın derlemeleri için semboller yayımlar.
Önceki sürümlerde, simgelerin yayın modunda yayımlanması için yayımlama profili
.pubxml
dosyanıza aşağıdaki satırı eklemeniz gerekir:<ExcludeGeneratedDebugSymbol>False</ExcludeGeneratedDebugSymbol>
Azure İşlem ve diğer türler için sembol dosyalarının şunlardan biri olduğundan emin olun:
- Ana uygulamanın
.dll
aynı klasöründe (genellikle ),wwwroot/bin
veya - Geçerli yolda kullanılabilir.
Kullanılabilen farklı simge seçenekleri hakkında daha fazla bilgi için Visual Studio belgelerine bakın. En iyi sonuçlar için Tam, Taşınabilir veya Katıştırılmış'ı kullanmanızı öneririz.
İyileştirilmiş derlemeler
Bazı durumlarda, JIT derleyicisi tarafından uygulanan iyileştirmeler nedeniyle yayın derlemelerinde yerel değişkenler görüntülenemez.
Ancak, App Service'te Snapshot Debugger, koleksiyon planının parçası olan oluşturma yöntemlerinin açmasını kaldırabilir.
İpucu
Kaldırma desteği almak için App Service örneğinize Application Insights Site uzantısını yükleyin.
Sonraki adımlar
Uygulamanız için Application Insights Anlık Görüntü Hata Ayıklayıcısı'nı etkinleştirin: