Aracılığıyla paylaş


Snapshot Debugger kullanarak Azure uygulamalarında canlı ASP.NET 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

  • Snapshot Debugger yalnızca Azure geliştirme iş yüküyle Visual Studio 2017 Enterprise sürüm 15.5 veya üzeri sürümden başlayarak 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'u yükleyin. Önceki bir Visual Studio yüklemesinden güncelleştiriyorsanız, Visual Studio Yükleyicisi'ni çalıştırın ve ASP.NET ve web geliştirme iş yükündeki Snapshot Debugger bileşenini denetleyin.

  • Temel veya daha yüksek Azure App Service planı.

  • Azure App Service'te çalıştırılan aşağıdaki web uygulamaları için anlık görüntü koleksiyonu 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ı.

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 App Service'inizde 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ını Bağla'yı seçin.. Projenizin dağıtıldığı Azure App Service'i ve bir Azure depolama hesabını seçin ve bağla tıklayın. Snapshot Debugger, Azure Kubernetes Service ve Azure Sanal Makineler (VM) ve Sanal Makine Ölçek Kümelerini 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

    Anlık Görüntü Hata Ayıklayıcısı Ekle'yi ilk kez seçtiğinizde, Azure App Service'inize Snapshot Debugger site uzantısını yüklemeniz istenir. Bu yükleme, Azure App Service'inizin yeniden başlatılmasını gerektirir.

    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.

    Visual Studio artık anlık görüntü hata ayıklama modundadır. Anlık görüntü çözümleme modu

    Modüller penceresi, Azure App Service 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, Uygulama Hizmetleri için Snapshot Debugger'ın nasıl kullanılacağını öğrendiniz. Bu özellik hakkında daha fazla ayrıntı okumak isteyebilirsiniz.