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
Visual Studio'yu kullanarak EtwTrackingParticipantSample.sln çözüm dosyasını açın.
Çözümü oluşturmak için CTRL+SHIFT+B tuşlarına basın.
Çö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.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.
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
.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ın
eventvwr.exe
. Olay günlüğünün iş akışı hizmetinden yayılan olayları izlemek için dinlediğinden emin olun.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.
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.
WCF test istemcisini kullanarak hizmeti test edin
GetData
ve ç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.
İş 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.
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 Profile
ETW'ye yayılan olayları gösterir. Adlı Troubleshooting Tracking Profile
Web.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ı)
Olay Görüntüleyicisi'ni açın.
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.
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.
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.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin