Aracılığıyla paylaş


Windows'ta Olay İzleme ile Olayları İzleme

EtwTracking örneği, bir iş akışı hizmetinde Windows Workflow Foundation (WF) izlemeyi etkinleştirmeyi ve Windows için Olay İzleme'de (ETW) izleme olaylarını yayma işlemini gösterir. örnek, iş akışı izleme kayıtlarını ETW'ye yaymak için ETW izleme katılımcısını (EtwTrackingParticipant ) kullanır.

Örnekteki iş akışı bir istek alır, giriş verilerinin karşılıklı değerini giriş değişkenine atar ve karşılıklı değeri istemciye geri döndürür. Giriş verileri 0 olduğunda, iş akışının durdurulmalarına neden olan işlenmemiş bir sıfıra bölme özel durumu oluşur. İzleme etkinleştirildiğinde, hata izleme kaydı ETW'ye gönderilir ve bu da hatanın daha sonra giderilmesine yardımcı olabilir. ETW izleme katılımcısı, izleme kayıtlarına abone olmak için bir izleme profiliyle yapılandırılır. İzleme profili Web.config dosyasında tanımlanır ve ETW izleme katılımcısına yapılandırma parametresi olarak sağlanır. ETW izleme katılımcısı, iş akışı hizmetinin Web.config dosyasında yapılandırılır ve hizmete hizmet davranışı olarak uygulanır. Bu örnekte, Olay Görüntüleyicisi kullanarak olay günlüğündeki izleme olaylarını görüntüleyebilirsiniz.

İş Akışı İzleme Ayrıntıları

Windows Workflow Foundation, bir iş akışı örneğinin yürütülmesini izlemek için bir izleme altyapısı sağlar. İzleme çalışma zamanı, iş akışı yaşam döngüsüyle ilgili olayları, iş akışı etkinliklerinden gelen olayları ve özel olayları yaymak için bir iş akışı örneği oluşturur. Aşağıdaki tabloda izleme altyapısının birincil bileşenleri ayrıntılı olarak yer alır.

Bileşen Veri Akışı Açıklaması
çalışma zamanını izleme İzleme kayıtlarını yaymak için altyapı sağlar.
Katılımcıları izleme İzleme kayıtlarına erişir. .NET Framework 4.6.1, izleme kayıtlarını Windows için Olay İzleme (ETW) olayları olarak yazan bir izleme katılımcısı ile birlikte gelen.
İzleme profili İzleme katılımcısının bir iş akışı örneğinden yayılan izleme kayıtlarının bir alt kümesine abone olmasına olanak tanıyan bir filtreleme mekanizması.

Aşağıdaki tabloda, iş akışı çalışma zamanının yaydığı izleme kayıtları ayrıntılı olarak yer alır.

kayıt izleme Açıklama
İş akışı örneği izleme kayıtları. İş akışı örneğinin yaşam döngüsünü açıklar. Örneğin, iş akışı başladığında veya tamamlandığında bir örnek kaydı yayılır.
Etkinlik durumu izleme kayıtları. Etkinlik yürütme ayrıntıları. Bu kayıtlar, bir etkinliğin zamanlanması, etkinliğin ne zaman tamamlanması veya bir hatanın atılması gibi bir iş akışı etkinliğinin durumunu gösterir.
Yer işareti yeniden kullanım kaydı. bir iş akışı örneği içindeki bir yer işareti sürdürülürken yayılır.
Özel izleme kayıtları. İş akışı yazarı özel izleme kayıtları oluşturabilir ve bunları özel etkinlik içinde yayımlayabilir.
ActivityScheduledRecord Bir etkinlik başka bir etkinlik zamanladığında bu kayıt yayılır.
FaultPropagationRecord Bu kayıt, bir etkinlikten bir hata yayıldığında yayılır.
CancelRequestedRecord Bu kayıt, bir etkinlik başka bir etkinlik tarafından iptal edildiğinde yayılır.

İzleme katılımcısı, izleme profillerini kullanarak yayılan izleme kayıtlarının bir alt kümesine abonedir. İzleme profili, belirli bir izleme kaydı türü için abone olunmasına izin veren izleme sorguları içerir. İzleme profilleri kodda veya yapılandırmada belirtilebilir.

Bu örneği kullanmak için

  1. Visual Studio'yu kullanarak EtwTrackingParticipantSample.sln çözüm dosyasını açın.

  2. Çözümü oluşturmak için CTRL+SHIFT+B tuşlarına basın.

  3. Çözümü çalıştırmak için F5 tuşuna basın.

    Varsayılan olarak, hizmet 53797 (http://localhost:53797/SampleWorkflowService.xamlx) numaralı bağlantı noktasında dinliyordur.

  4. Dosya Gezgini kullanarak WCF test istemcisini açın.

    WCF test istemcisi (WcfTestClient.exe) Visual Studio yükleme klasörü>\Common7\IDE\ klasöründe bulunur<.

    Varsayılan Visual Studio yükleme klasörü C:\Program Files\Microsoft Visual Studio 10.0'dır.

  5. WCF test istemcisinde Dosya menüsünden Hizmet Ekle'yi seçin.

    Giriş kutusuna uç nokta adresini ekleyin. Varsayılan değer: http://localhost:53797/SampleWorkflowService.xamlx.

  6. Olay Görüntüleyicisi uygulamasını açın.

    Hizmeti çağırmadan önce Başlat menüsünden Olay Görüntüleyicisi başlatın, Çalıştır'ı seçin ve yazıneventvwr.exe. Olay günlüğünün iş akışı hizmetinden yayılan olayları izlemek için dinlediğinden emin olun.

  7. Olay Görüntüleyicisi ağaç görünümünde Olay Görüntüleyicisi, Uygulamalar ve Hizmetler Günlükleri ve Microsoft'a gidin. Analiz ve hata ayıklama günlüklerini etkinleştirmek için Microsoft'a sağ tıklayın ve Görünüm'ü ve ardından Analiz ve Hata Ayıklama Günlüklerini Göster'i seçin

    Analiz ve Hata Ayıklama Günlüklerini Göster seçeneğinin işaretli olduğundan emin olun.

  8. Olay Görüntüleyicisi ağaç görünümünde Olay Görüntüleyicisi, Uygulama ve Hizmet Günlükleri, Microsoft, Windows, Uygulama Sunucusu-Uygulamaları'na gidin. Analitik'e sağ tıklayın ve Analytic günlüğünü etkinleştirmek için Günlüğü Etkinleştir'i seçin.

  9. WCF test istemcisini kullanarak hizmeti test edin GetDatave çift tıklayın.

    Bu, GetData yöntemini açar. İstek bir parametre kabul eder ve değerin varsayılan değer olan 0 olmasını sağlar.

    Çağır'a tıklayın.

  10. İş akışından yayılan olayları gözlemleyin.

    Olay Görüntüleyicisi dönün ve Olay Görüntüleyicisi, Uygulama ve Hizmet Günlükleri, Microsoft, Windows, Application Server-Applications'a gidin. Analiz'e sağ tıklayın ve Yenile'yi seçin.

    İş akışı olayları olay görüntüleyicisinde görüntülenir. İş akışı yürütme olaylarının görüntülendiğine ve bunlardan birinin iş akışındaki hataya karşılık gelen işlenmemiş bir özel durum olduğuna dikkat edin. Ayrıca, iş akışı etkinliğinden, etkinliğin hata oluşturduğunu gösteren bir uyarı olayı yayılır.

  11. Hata oluşmaması için 9. ve 10. adımları 0 dışında bir veri girişiyle yineleyin.

İzleme profilleri, bir iş akışı örneğinin durumu değiştiğinde çalışma zamanı tarafından yayılan olaylara abone olmanıza olanak tanır. İzleme gereksinimlerinize bağlı olarak, iş akışındaki küçük bir üst düzey durum değişiklikleri kümesine abone olan çok kaba bir profil oluşturabilirsiniz. Öte yandan, çıkışı daha sonra yürütmeyi yeniden oluşturacak kadar zengin olan çok hassas bir profil oluşturabilirsiniz. Örnek, küçük bir olay kümesi yayan öğesini kullanarak iş akışı çalışma zamanından HealthMonitoring Tracking ProfileETW'ye yayılan olayları gösterir. Adlı Troubleshooting Tracking ProfileWeb.config dosyasında daha fazla iş akışı izleme olayı yayan farklı bir profil de sağlanır. .NET Framework 4.6.1 yüklendiğinde, Machine.config dosyasında boş ada sahip bir varsayılan profil yapılandırılır. Bu profil, hiçbir profil adı veya boş profil adı belirtilmediğinde ETW izleme davranışı yapılandırması tarafından kullanılır.

Sistem durumu izleme izleme profili, iş akışı örneği kayıtlarını ve etkinlik hata yayma kayıtlarını yayar. Bu profil, bir Web.config yapılandırma dosyasına aşağıdaki izleme profili eklenerek oluşturulur.

<tracking>
  <profiles>
    <trackingProfile name="HealthMonitoring Tracking Profile">
      <workflow activityDefinitionId="*">
        <workflowInstanceQueries>
          <workflowInstanceQuery>
            <states>
              <state name="Started"/>
              <state name="Completed"/>
              <state name="Aborted"/>
              <state name="UnhandledException"/>
            </states>
          </workflowInstanceQuery>
        </workflowInstanceQueries>
        <faultPropagationQueries>
          <faultPropagationQuery faultSourceActivityName ="*" faultHandlerActivityName="*"/>
        </faultPropagationQueries>
      </workflow>
    </trackingProfile>
  </profiles>
</tracking>

Profil, yapılandırma aşağıdaki şekilde EtwTrackingParticipant değiştirilerek değiştirilebilir.

<behaviors>
  <serviceBehaviors>
    <behavior>
      <etwTracking profileName="HealthMonitoring Tracking Profile"/>
    </behavior>
  </serviceBehaviors>
</behaviors>

Temizlemek için (İsteğe bağlı)

  1. Olay Görüntüleyicisi'ni açın.

  2. Olay Görüntüleyicisi, Uygulamalar ve Hizmet Günlükleri, Microsoft, Windows, Uygulama Sunucusu-Uygulamaları'na gidin. Analitik'e sağ tıklayın ve Günlüğü Devre Dışı Bırak'ı seçin.

  3. Olay Görüntüleyicisi, Uygulamalar ve Hizmet Günlükleri, Microsoft, Windows, Uygulama Sunucusu-Uygulamaları'na gidin. Analitik'e sağ tıklayın ve Günlüğü Temizle'yi seçin.

  4. Olayları temizlemek için Temizle seçeneğini belirleyin.

Bilinen Sorun

Not

Olay Görüntüleyicisi ETW olaylarının kodunu çözemeyebileceği bilinen bir sorun vardır. Aşağıdakine benzer bir hata iletisi görebilirsiniz.

Microsoft-Windows-Application Server-Applications kaynağından Olay Kimliği <kimliği> açıklaması bulunamıyor. Bu olayı tetikleyen bileşen yerel bilgisayarınızda yüklü değil veya yükleme bozuk. Bileşeni yerel bilgisayara yükleyebilir veya onarabilirsiniz.

Bu hatayla karşılaşırsanız eylemler bölmesinde yenile'ye tıklayın. Olayın artık kodunu düzgün bir şekilde çözmesi gerekir.

Ayrıca bkz.