Snapshot Debugger'ı kullanarak Azure sanal makinelerinde ve Azure sanal makine ölçek kümelerinde canlı ASP.NET uygulamalarında hata ayıklama

Snapshot Debugger, ilgilendiğiniz kod yürütülürken üretim içi uygulamalarınızın anlık görüntüsünü alır. Hata ayıklayıcıya anlık görüntü almasını bildirmek için, kodunuzda snappoint'leri ve günlük noktalarını ayarlarsınız. Hata ayıklayıcı, üretim uygulamanızın trafiğini etkilemeden tam olarak neyin yanlış gittiğini görmenizi sağlar. Snapshot Debugger, üretim ortamlarında oluşan sorunları çözmek için gereken süreyi önemli ölçüde azaltmanıza yardımcı olabilir.

Anlık görüntü noktaları ve günlüğe kaydetme noktaları kesme noktalarına benzer ancak kesme noktalarından farklı olarak bunlara gelindiğinde uygulama durmaz. Genellikle anlık görüntü yakalama işlemi bir snappoint'te 10-20 milisaniye sürer.

Bu öğreticide şunları yapacaksınız:

  • Snapshot Debugger'ı başlatma
  • Tutturma noktası ayarlama ve anlık görüntüyü görüntüleme
  • Günlük noktası ayarlama

Önkoşullar

  • Azure Sanal Makineler (VM) ve Azure Sanal Makine Ölçek Kümeleri için Snapshot Debugger yalnızca Azure geliştirme iş yüküyle Visual Studio 2019 Enterprise veya üzeri sürümlerde kullanılabilir. (Tek tek bileşenler sekmesinde hata ayıklama ve test>Anlık görüntü hata ayıklayıcısı altında bulabilirsiniz.)

    Henüz yüklü değilse Visual Studio 2019 Enterprise'ı yükleyin.

  • Anlık görüntü koleksiyonu aşağıdaki Azure Sanal Makineler\Sanal Makine Ölçek Kümeleri web uygulamaları için kullanılabilir:

    • .NET Framework 4.6.1 veya üzeri üzerinde çalışan uygulamaları ASP.NET.
    • Windows üzerinde .NET Core 2.0 veya üzeri üzerinde çalışan ASP.NET Core uygulamaları.

    Not

    32 bit Windows üzerinde çalışan Visual Studio Enterprise anlık görüntüleri görüntüleyemez.

Projenizi açın ve Snapshot Debugger'ı başlatın

  1. Anlık görüntü hatalarını ayıklamak istediğiniz projeyi açın.

    Önemli

    Anlık görüntü hatalarını ayıklamak için Azure Sanal Makine\Sanal Makine Ölçek Kümesi hizmetinizde yayımlanan kaynak kodunun aynı sürümünü açmanız gerekir.

  2. Hata Ayıkla > Anlık Görüntü Hata Ayıklayıcısı Ekle'yi seçin.... Azure Sanal Makinesi\Sanal Makine Ölçek Web uygulamanızın dağıtılacağı ve bir Azure depolama hesabına ayarlandığını seçin ve ekle'ye tıklayın. Snapshot Debugger, Azure Kubernetes Service ve Azure Uygulaması Service'i de destekler.

    Launch the snapshot debugger from the Debug menu

    Select Azure Resource

    Önemli

    VM'niz için Anlık Görüntü Hata Ayıklayıcısı Ekle'yi ilk kez seçtiğinizde IIS otomatik olarak yeniden başlatılır. Sanal Makine Ölçek Kümeleri için Anlık Görüntü Hata Ayıklayıcısı Ekle'yi ilk kez seçtiğinizde, Sanal Makine Ölçek Kümeleri her örneğinin el ile yükseltmesi gerekir.

    Not

    (Visual Studio 2019 sürüm 16.2 ve üzeri) Snapshot Debugger, Azure bulut desteğini etkinleştirdi. Hem Azure kaynağının hem de seçtiğiniz Azure Depolama hesabının aynı bulutta olduğundan emin olun. Kuruluşunuzun Azure uyumluluk yapılandırmaları hakkında sorularınız varsa lütfen Azure yöneticinize başvurun.

    Modüller için meta veriler başlangıçta etkinleştirilmez, web uygulamasına gidin ve Koleksiyonu Başlat düğmesi etkin hale gelir. Visual Studio artık anlık görüntü hata ayıklama modundadır.

    Snapshot debugging mode

    Not

    VMSS için kullanıcının Snapshot Debugger'ı ilk kez ekledikten sonra Sanal Makine Ölçek Kümeleri örneklerini el ile yükseltmesi gerekir.

    Modüller penceresi, Azure Sanal Makine\Sanal Makine Ölçek Kümesi için tüm modüllerin ne zaman yüklendiğini gösterir (bu pencereyi açmak için Windows > Modüllerinde Hata Ayıkla'yı > seçin).

    Check the Modules window

Tutturma noktası ayarlama

  1. Kod düzenleyicisinde, bir ek bileşen noktası ayarlamak için ilgilendiğiniz bir kod satırının yanındaki sol oluklara tıklayın. Yürütüleceğini bildiğiniz bir kod olduğundan emin olun.

    Set a snappoint

  2. Snappoint'i açmak için Koleksiyonu Başlat'a tıklayın.

    Turn on the snappoint

    İpucu

    Bir anlık görüntüyü görüntülerken adım atamazsınız, ancak farklı kod satırlarında yürütmeyi izlemek için kodunuza birden çok snappoint yerleştirebilirsiniz. Kodunuzda birden çok snappoint varsa Snapshot Debugger, karşılık gelen anlık görüntülerin aynı son kullanıcı oturumundan olmasını sağlar. Anlık Görüntü Hata Ayıklayıcısı, uygulamanıza çok sayıda kullanıcı çarpsa bile bunu yapar.

Anlık görüntü alma

Tutturma noktası ayarlandıktan sonra, web sitenizin tarayıcı görünümüne gidip işaretli kod satırını çalıştırarak el ile anlık görüntü oluşturabilir veya kullanıcılarınızın site kullanımlarından bir tane oluşturmasını bekleyebilirsiniz.

Anlık görüntü verilerini inceleme

  1. Tutturma noktasına isabet edildiğinde, Tanılama Araçları penceresinde bir anlık görüntü görüntülenir. Bu pencereyi açmak için Windows > Tanılama Araçlarını Göster hatalarını ayıkla'yı > seçin.

    Open a snappoint

  2. Anlık görüntüyü kod düzenleyicisinde açmak için tutturma noktasına çift tıklayın.

    Inspect snapshot data

    Bu görünümden, Değişkenlerin üzerine gelerek Data İpuçları görüntüleyebilir, Locals, Watches ve Call Stack pencerelerini kullanabilir ve ayrıca ifadeleri değerlendirebilirsiniz.

    Web sitesinin kendisi hala canlı ve son kullanıcılar etkilenmez. Varsayılan olarak tutturma noktası başına yalnızca bir anlık görüntü yakalanır: Anlık görüntü yakalandıktan sonra snappoint kapatılır. Snappoint'te başka bir anlık görüntü yakalamak istiyorsanız, Koleksiyonu Güncelleştir'e tıklayarak tutturma noktasını yeniden açabilirsiniz.

Ayrıca uygulamanıza daha fazla ek bileşen ekleyebilir ve Koleksiyonu Güncelleştir düğmesiyle bunları açabilirsiniz.

Yardıma mı ihtiyacınız var? Bkz. Sorun giderme ve bilinen sorunlar ve anlık görüntü hata ayıklama sayfaları için SSS.

Koşullu tutturma noktası ayarlama

Uygulamanızda belirli bir durumu yeniden oluşturmak zorsa koşullu bir tutturma noktası kullanmayı göz önünde bulundurun. Koşullu tutturma noktaları, bir değişkenin incelemek istediğiniz belirli bir değeri içermesi gibi anlık görüntü alma zamanlarını denetlemenize yardımcı olur. İfadeleri, filtreleri veya isabet sayılarını kullanarak koşulları ayarlayabilirsiniz.

Koşullu tutturma noktası oluşturmak için

  1. Bir tutturma noktası simgesine (boş küre) sağ tıklayın ve Ayarlar seçin.

    Choose Settings

  2. Tutturma noktası ayarları penceresinde bir ifade yazın.

    Type an expression

    Yukarıdaki çizimde anlık görüntü yalnızca olduğunda visitor.FirstName == "Dan"snappoint için alınır.

Günlük noktası ayarlama

Ek bileşen noktasına isabet edildiğinde anlık görüntü almanın yanı sıra, iletiyi günlüğe kaydetmek (yani bir günlük noktası oluşturmak) için bir ek bağlantı noktası da yapılandırabilirsiniz. Uygulamanızı yeniden dağıtmak zorunda kalmadan günlük noktaları ayarlayabilirsiniz. Günlük noktaları sanal olarak yürütülür ve çalışan uygulamanız üzerinde hiçbir etkiye veya yan etkiye neden olmaz.

Günlük noktası oluşturmak için

  1. Bir tutturma noktası simgesine (mavi altıgen) sağ tıklayın ve Ayarlar seçin.

  2. Tutturma noktası ayarları penceresinde Eylemler'i seçin.

    Create a logpoint

  3. İleti alanına, günlüğe kaydetmek istediğiniz yeni günlük iletisini girebilirsiniz. Günlük iletinizdeki değişkenleri küme ayraçlarının içine yerleştirerek de değerlendirebilirsiniz.

    Çıkış Penceresine Gönder'i seçerseniz, günlük noktasına basıldığında, ileti Tanılama Araçları penceresinde görüntülenir.

    Logpoint data in the Diagnostic Tools window

    Uygulama günlüğüne gönder'i seçerseniz, günlük noktasına isabet edildiğinde ileti, Uygulama Analizler gibi iletileri System.Diagnostics.Trace görebileceğiniz (veya ILogger .NET Core'da) herhangi bir yerde görünür.

Bu öğreticide Azure Sanal Makineler ve Azure Sanal Makine Ölçek Kümeleri için Snapshot Debugger'ı kullanmayı öğrendiniz. Bu özellik hakkında daha fazla ayrıntı okumak isteyebilirsiniz.