Aracılığıyla paylaş


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:

Ortamlar

Aşağıdaki ortamlar desteklenir:

Not

İstemci uygulamaları (örneğin, WPF, Windows Forms veya UWP) desteklenmez.

Snapshot Debugger kullanma önkoşulları

Paketler ve yapılandırmalar

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

  1. Uygulamanız oluşturur TrackException.

  2. Snapshot Debugger, olaya abone AppDomain.CurrentDomain.FirstChanceException olarak özel durumları izler.

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

  4. Özel durum olayının sorun kimliği hesaplanır ve koleksiyon planındaki sorun kimlikleriyle karşılaştırılır.

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

  6. İşleyici döndürdüğünde FirstChanceException , oluşan özel durum normal şekilde işlenir.

  7. Ö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:

  1. Minidump oluşturur.

  2. 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/binveya
    • 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: