Aracılığıyla paylaş


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

Uyarı

Anlık görüntü hata ayıklaması kullanım dışı bırakıldı ve artık Visual Studio 2022 ve sonraki sürümlerin en son sürümlerinde kullanılamayacak. Tam olarak değiştirilmemiş olsa da, yararlı tanılamalar sağlayabilecek başka araçlar da vardır:

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 bir anlık görüntü almasını bildirmek için, kodunuzda anlık görüntü noktaları ve günlük noktaları 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 kılavuzda aşağıdakileri 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ı belirle

Ö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 sekmesinin altında Hata ayıklama ve test> altında bulabilirsinizAnlık görüntü hata ayıklayıcısı.)

    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 ile çalışan ASP.NET uygulamaları.
    • Windows üzerinde .NET Core 2.0 veya üzeri üzerinde çalışan ASP.NET Core uygulamaları.

    Uyarı

    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ü hata ayıklaması yapmak 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ıklama > Anlık Görüntü Hata Ayıklayıcısı Ekle'yi seçin... Azure Sanal Makinesi\Sanal Makine Ölçek Kümesi ve bir Azure depolama hesabı seçin ve ardından Bağlan'a tıklayın. Snapshot Debugger, Azure Kubernetes Service ve Azure App Service'i de destekler.

    Hata Ayıkla menüsünden anlık görüntü hata ayıklayıcısını başlatma

    Azure Kaynağı'nın seçilmesi

    Ö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ümeleriniz için Anlık Görüntü Hata Ayıklayıcısı Ekle seçeneğini ilk kez seçtiğinizde, Sanal Makine Ölçek Kümelerinin her bir örneğinin el ile yükseltilmesi gerekir.

    Uyarı

    (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ı buluttan 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.

    Anlık görüntü çözümleme modu

    Uyarı

    VMSS için kullanıcının Snapshot Debugger'ı ilk kez ekledikten sonra Sanal Makine Ölçek Kümelerindeki örnekleri 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).

    Modüller penceresini denetleyin

Yakalama noktası ayarla

  1. Kod düzenleyicisi içinde, ilgilendiğiniz bir kod satırının yanındaki sol sütuna tıklayarak bir kesme noktası ayarlayın. Yürütüleceğini bildiğiniz bir kod olduğundan emin olun.

    Tutturma noktası ayarlama

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

    Tutturma noktasını aç

    Tavsiye

    Bir anlık görüntüyü incelerken adım atamazsınız, ancak farklı kod satırlarında yürütmeyi takip etmek için kodunuza birden fazla 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ızı çok sayıda kullanıcı kullansa 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. Durdurma noktasına isabet edildiğinde, Tanılama Araçları penceresinde bir anlık görüntü gösterilir. Bu pencereyi açmak için Windows > Tanılama Araçlarını Göster hatalarını ayıkla'yı >seçin.

    Bir bağlantı noktası aç

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

    Anlık görüntü verilerini inceleme

    Bu görünümden, Değişkenlerin üzerine gelerek Veri İpuçlarını 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 her bir snappoint için yalnızca bir anlık görüntü alınır: Anlık görüntü alındıktan sonra snappoint devre dışı kalır. Snappoint'te başka bir anlık görüntü yakalamak istiyorsanız, Koleksiyonu Güncelleştir'e tıklayarak snappoint'i yeniden etkinleştirebilirsiniz.

Uygulamanıza daha fazla snappoint ekleyebilir ve bunları Koleksiyonu Güncelleştir düğmesiyle etkinleştirebilirsiniz.

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

Koşullu tutturma noktası ayarla

Uygulamanızda belirli bir durumu yeniden oluşturmak zorsa koşullu bir tutturma noktası kullanmayı göz önünde bulundurun. Koşullu anlık görüntü alma noktaları, bir değişkenin incelemek istediğiniz belirli bir değeri içerdiğinde anlık görüntü almayı kontrol etmenize 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.

    Ayarlar'ı seçin

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

    İfade yazma

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

Günlük noktası belirle

Anlık görüntü noktasına isabet edildiğinde anlık görüntü almanın yanı sıra, bir iletiyi günlüğe kaydedecek şekilde bir günlükleme noktası da yapılandırabilirsiniz. Uygulamanızı yeniden dağıtmak zorunda kalmadan log noktaları koyabilirsiniz. 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.

Bir log 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.

    Günlük noktası oluşturma

  3. İleti alanına, günlüğe kaydetmek istediğiniz yeni günlük iletisini girebilirsiniz. Günlük mesajınızdaki değişkenleri değerlendirmek için onları küme ayraçlarının içine yerleştirebilirsiniz.

    Çı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.

    Tanılama Araçları penceresindeki Logpoint verileri

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

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