Aracılığıyla paylaş


İleti Akışı Genel Bakış

Birbirine bağlı hizmetler içeren dağıtılmış bir sistemde, hizmetler arasındaki nedensel ilişkilerin belirlenmesi gerekir. Sistem durumu izleme, sorun giderme ve kök neden analizi gibi kritik senaryoları desteklemek için bir istek akışının parçası olan çeşitli bileşenleri anlamak önemlidir. Çeşitli hizmetler arasındaki izlemelerin bağıntısını etkinleştirmek için .NET Framework 4'te aşağıdaki özellikler aracılığıyla destek ekledik:

  • Analitik izleme: Windows için Olay İzleme (ETW) kullanan yüksek performanslı ve düşük ayrıntılı izleme özelliği.

  • WCF/WF hizmetleri için uçtan uca etkinlik modeli: Bu özellik ve System.Workflow.ComponentModel ad alanları tarafından oluşturulan izlemelerin bağıntısını System.ServiceModel destekler.

  • WF için ETW izleme: Bu özellik, iş akışının geçerli durumu ve ilerleme durumu hakkında görünürlük sağlamak için WF hizmetleri tarafından oluşturulan izleme kayıtlarını kullanır.

İzleme veya izleme kaydında günlüğe kaydedilen hatalar, kod hatalarını veya yanlış biçimlendirilmiş iletileri bulmak için kullanılabilir. Hataya neden olan etkinliği belirlemek için olayın ileti üst bilgisindeki Bağıntı düğümünün ActivityId özelliği kullanılabilir. Etkinlik kimliğine göre ileti akışı izlemeyi etkinleştirmek için bkz . İleti Akışı İzlemeyi Yapılandırma. Bu konu başlığında, Başlarken öğreticisinde oluşturulan projede ileti akışı izlemeyi etkinleştirme adımları gösterilmektedir.

Başlarken öğreticisinde ileti akışı izlemeyi etkinleştirmek için

  1. Başlat, Çalıştır'a tıklayıp yazarak eventvwr.exeOlay Görüntüleyicisi açın.

  2. Analiz izlemeyi etkinleştirmediyseniz Uygulamalar ve Hizmet Günlükleri, Microsoft, Windows, Application Server-Applications'ı genişletin. Görünüm, Analiz ve Hata Ayıklama Günlüklerini Göster'i seçin. Analitik'e sağ tıklayın ve Günlüğü Etkinleştir'i seçin. İzlemelerin görüntülenebilmesi için Olay Görüntüleyicisi açık bırakın.

  3. Visual Studio 2012'de Başlarken Öğreticisi'nde oluşturulan örneği açın. Hizmetin oluşturulabilmesi için Visual Studio 2012'yi yönetici olarak çalıştırmanız gerektiğini unutmayın. WCF örnekleri yüklüyse, öğreticide oluşturulan tamamlanmış projeyi içeren Başlarken'i açabilirsiniz.

  4. Hizmet projesine sağ tıklayın ve Ekle, Yeni Öğe'yi seçin. Uygulama Yapılandırma Dosyası'nı seçin ve Tamam'a tıklayın.

  5. Önceki adımda oluşturulan App.Config dosyasına aşağıdaki kodu ekleyin.

    <system.serviceModel>
      <diagnostics>
        <endToEndTracing propagateActivity="true" messageFlowTracing="true"/>
      </diagnostics>
    </system.serviceModel>
    
  6. CTRL+F5 tuşlarına basarak hata ayıklamadan sunucu uygulamasını yürütebilirsiniz. İstemci projesine sağ tıklayıp Hata Ayıkla, Yeni Örneği Başlat'ı seçerek istemci projesini yürütür.

  7. İstemciden sunucuya olayları izlemek için, İstemci projesindeki uygulama yapılandırma dosyasına aşağıdakileri ekleyin.

    <diagnostics>
      <endToEndTracing propagateActivity="true" messageFlowTracing="true"/>
    </diagnostics>
    
  8. İstemcideki Program.cs aşağıdaki Using deyimini ekleyin.

    using System.Diagnostics;
    
  9. İstemci projesindeki program.cs dosyasındaki Main yönteminde, olay günlüğünde yayılacak İzleme GUID'sini ayarlayın.

    Guid guid = Guid.NewGuid();
    Trace.CorrelationManager.ActivityId = guid;
    
  10. Analytics günlüğünü yenileyin ve inceleyin. Olay Kimliği 220 olan bir olayı arayın. Olayı seçin ve önizleme bölmesindeKi Ayrıntılar sekmesine tıklayın. Bu olay, çağıran etkinliğin bağıntı kimliğini içerir.

    <Correlation ActivityID="{A066CCF1-8AB3-459B-B62F-F79F957A5036}" />
    

    Not

    ActivityID'de aynı GUID'ye sahip tüm olaylar bir istekle ilişkilidir. Bu, belirli bir istemciden gelen iletileri belirli bir hizmetle ilişkilendirmek için kullanılabilir. İstemci başka bir hizmet çağırdıysa, aynı istemci ActivityID tarafından tanımlanabilir.

  11. Bazı durumlarda, ActivityID özgün GUID'den yeni bir ActivityID'ye değişebilir. Bu durumda bir aktarım olayı yayılır. Bu olay kimliği 499'dur ve olay üst bilgide aşağıdaki verileri içerir.

    <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
        <System>
            <Provider Name="Microsoft-Windows-Application Server-Applications" Guid="{c651f5f6-1c0d-492e-8ae1-b4efd7c9d503}" />
            <EventID>499</EventID>
            ...
            <Correlation ActivityID="{A066CCF1-8AB3-459B-B62F-F79F957A5036}" RelatedActivityID="{85FC0930-9C49-42DA-804B-A7368104BD1B}" />
            ...
       </System>
    </Event>
    

    Not

    Aktarım olayı etkin ActivityID değerinin ActivityID olarak belirtilen GUID'den RelatedActivityID olarak belirtilen GUID'ye değişimini kaydeder. Aktarım olayı gönderildikten sonra, tüm olaylar ActivityID olarak yeni GUID'yi içerir.