Visual Studio'yu kullanarak Service Fabric uygulamanızda hata ayıklama

Yerel Service Fabric uygulamasında hata ayıklama

Önemli

VS 2022'de uzaktan hata ayıklama desteklenmiyor

Yerel bir bilgisayar geliştirme kümesinde Azure Service Fabric uygulamanızı dağıtıp hatalarını ayıklayarak zamandan ve paradan tasarruf edebilirsiniz. Visual Studio 2019 veya 2015, uygulamayı yerel kümeye dağıtabilir ve hata ayıklayıcısını otomatik olarak uygulamanızın tüm örneklerine bağlayabilir. Hata ayıklayıcıyı bağlamak için Visual Studio Yönetici olarak çalıştırılmalıdır.

  1. Service Fabric geliştirme ortamınızı ayarlama bölümündeki adımları izleyerek yerel bir geliştirme kümesi başlatın.

  2. F5 tuşuna basın veya Hata AyıklamaYı>Başlat Hata Ayıklama'ya tıklayın.

    Hata Ayıkla menüsünü gösteren ekran görüntüsü.

  3. Kodunuzda kesme noktaları ayarlayın ve Hata Ayıkla menüsündeki komutlara tıklayarak uygulamada ilerleyin.

    Not

    Visual Studio, uygulamanızın tüm örneklerine ekler. Kodda ilerlerken kesme noktalarına birden çok işlem isabet edebilir ve bu da eşzamanlı oturumlara neden olabilir. Her kesme noktasını iş parçacığı kimliğine koşullu hale getirerek veya tanılama olaylarını kullanarak kesme noktalarını vurulduktan sonra devre dışı bırakmayı deneyin.

  4. Tanılama Olayları penceresi otomatik olarak açılır, böylece tanılama olaylarını gerçek zamanlı olarak görüntüleyebilirsiniz.

    Tanılama olaylarını gerçek zamanlı olarak görüntüleme

  5. Tanılama Olayları penceresini Bulut Gezgini'nde de açabilirsiniz. Service Fabric'in altında herhangi bir düğüme sağ tıklayın ve Akış İzlemelerini Görüntüle'yi seçin.

    Tanılama olayları penceresini açma

    İzlemelerinizi belirli bir hizmet veya uygulama için filtrelemek istiyorsanız, bu hizmet veya uygulamada akış izlemelerini etkinleştirin.

  6. Tanılama olayları otomatik olarak oluşturulan ServiceEventSource.cs dosyasında görülebilir ve uygulama kodundan çağrılır.

    ServiceEventSource.Current.ServiceMessage(this, "My ServiceMessage with a parameter {0}", result.Value.ToString());
    
  7. Tanılama Olayları penceresi olayları gerçek zamanlı olarak filtrelemeyi, duraklatma ve incelemeyi destekler. Filtre, içeriği dahil olmak üzere olay iletisinin basit bir dize aramasıdır.

    Olayları gerçek zamanlı olarak filtreleme, duraklatma ve sürdürme veya inceleme

  8. Hizmetlerde hata ayıklamak, diğer tüm uygulamalar için hata ayıklamaya benzer. Kolay hata ayıklama için normalde Visual Studio aracılığıyla Kesme Noktaları ayarlarsınız. Güvenilir Koleksiyonlar birden çok düğüm arasında çoğaltılsa da IEnumerable'ı uygulamaya devam ederler. Bu uygulama, içinde depoladığınız öğeleri görmek için hata ayıklarken Visual Studio'daki Sonuçlar Görünümü'nü kullanabileceğiniz anlamına gelir. Bunu yapmak için kodunuzun herhangi bir yerinde bir kesme noktası ayarlayın.

    Uygulamada hata ayıklamayı başlatma

Hata ayıklamanın bir parçası olarak betik çalıştırma

Bazı senaryolarda bir hata ayıklama oturumu başlatmanın bir parçası olarak bir betik çalıştırmanız gerekebilir (örneğin, Varsayılan Hizmetler'i kullanmadığınızda).

Visual Studio'da, Service Fabric Uygulaması projesinin (.sfproj) Scripts klasörüne Start-Service.ps1 adlı bir dosya ekleyebilirsiniz. Bu betik, uygulama yerel kümede oluşturulduktan sonra çağrılır.

Uzak Service Fabric uygulamasında hata ayıklama

Service Fabric uygulamalarınız Azure'daki bir Service Fabric kümesinde çalışıyorsa, bu uygulamaların hatalarını doğrudan Visual Studio'dan uzaktan ayıklayabilirsiniz.

Not

Bu özellik için Service Fabric SDK 2.0 ve .NET 2.9 için Azure SDK gerekir.

Uyarı

Uzaktan hata ayıklama, çalışan uygulamalar üzerindeki etkisinden dolayı geliştirme/test senaryolarına yöneliktir ve üretim ortamlarında kullanılmamalıdır.

  1. Bulut Gezgini'nde kümenize gidin. Sağ tıklayın ve Hata Ayıklamayı Etkinleştir'i seçin

    Uzaktan hata ayıklamayı etkinleştirme

    Bu eylem, küme düğümlerinizde ve gerekli ağ yapılandırmalarında uzaktan hata ayıklama uzantısını etkinleştirme işlemini başlatacaktır.

  2. Bulut Gezgini'nde küme düğümüne sağ tıklayın ve Hata Ayıklayıcı Ekle'yi seçin

    Hata ayıklayıcı ekleme

  3. İşleme ekle iletişim kutusunda, hata ayıklamak istediğiniz işlemi seçin ve Ekle'ye tıklayın

    İşlem seçin

    Eklemek istediğiniz işlemin adı, hizmet projesi derleme adınızın adıyla eşittir.

    Hata ayıklayıcı işlemi çalıştıran tüm düğümlere eklenir.

    • Durum bilgisi olmayan bir hizmette hata ayıklaması yaptığınız durumlarda, hizmetin tüm düğümlerdeki tüm örnekleri hata ayıklama oturumunun bir parçasıdır.

    • Durum bilgisi olan bir hizmette hata ayıklarsanız, herhangi bir bölümün yalnızca birincil çoğaltması etkin olur ve bu nedenle hata ayıklayıcı tarafından yakalanacaktır. Birincil çoğaltma hata ayıklama oturumu sırasında taşınırsa, bu çoğaltmanın işlenmesi hata ayıklama oturumunun bir parçası olmaya devam eder.

    • Belirli bir hizmetin yalnızca ilgili bölümlerini veya örneklerini yakalamak için koşullu kesme noktalarını kullanarak yalnızca belirli bir bölümü veya örneği kesebilirsiniz.

      Koşullu kesme noktası

      Not

      Şu anda aynı hizmet yürütülebilir adının birden çok örneğine sahip bir Service Fabric kümesinde hata ayıklamayı desteklemiyoruz.

  4. Uygulamanızda hata ayıklamayı tamamladıktan sonra, Bulut Gezgini'nde kümeye sağ tıklayıp Hata Ayıklamayı Devre Dışı Bırak'ı seçerek uzaktan hata ayıklama uzantısını devre dışı bırakabilirsiniz

    Uzaktan hata ayıklamayı devre dışı bırakma

Uzak küme düğümünden akış izlemeleri

Ayrıca izlemeleri doğrudan uzak bir küme düğümünden Visual Studio'ya akışla aktarabilirsiniz. Bu özellik, Service Fabric küme düğümünde üretilen ETW izleme olaylarının akışını yapmanızı sağlar.

Not

Bu özellik için Service Fabric SDK 2.0 ve .NET 2.9 için Azure SDK gerekir. Bu özellik yalnızca Azure'da çalışan kümeleri destekler.

Uyarı

Akış izlemeleri, çalışan uygulamalar üzerindeki etkisinden dolayı geliştirme/test senaryolarına yöneliktir ve üretim ortamlarında kullanılmamalıdır. Üretim senaryosunda, Azure Tanılama kullanarak olayları iletmeye güvenmeniz gerekir.

  1. Bulut Gezgini'nde kümenize gidin. Sağ tıklayın ve Akış İzlemelerini Etkinleştir'i seçin

    Uzaktan akış izlemelerini etkinleştirme

    Bu eylem, hem küme düğümlerinizde akış izlemeleri uzantısını hem de gerekli ağ yapılandırmalarını etkinleştirme işlemini başlatacaktır.

  2. Bulut Gezgini'ndeDüğümler öğesini genişletin, izleme akışı yapmak istediğiniz düğüme sağ tıklayın ve Akış İzlemelerini Görüntüle'yi seçin

    Uzak akış izlemelerini görüntüleme

    İzlemeleri görmek istediğiniz sayıda düğüm için 2. adımı yineleyin. Her düğüm akışı ayrılmış bir pencerede gösterilir.

    Artık Service Fabric ve hizmetleriniz tarafından yayılan izlemeleri görebilirsiniz. Olayları yalnızca belirli bir uygulamayı gösterecek şekilde filtrelemek istiyorsanız, filtrede uygulamanın adını yazmanız yeterlidir.

    Akış izlemelerini görüntüleme

  3. Kümenizden akış izlemelerini tamamladıktan sonra, Bulut Gezgini'nde kümeye sağ tıklayıp Akış İzlemelerini Devre Dışı Bırak'ı seçerek uzaktan akış izlemelerini devre dışı bırakabilirsiniz

    Uzaktan akış izlemelerini devre dışı bırakma

Sonraki adımlar