自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

詳解WF 4.0 beta1中的跟蹤參與者

開發(fā) 開發(fā)工具
本文將解釋W(xué)F 4.0 beta1中的跟蹤參與者(Tracking Participants)是如何工作的、以及如何使用跟蹤參與者來處理和存儲工作流放出的跟蹤記錄。我們還將介紹現(xiàn)成的Event Tracing for Windows(ETW) 跟蹤參與者以及如何通過它在事件查看器中查看跟蹤記錄。

在之前的文章中,我們簡單的介紹了WF 4.0 beta1中的跟蹤機(jī)制,并且深入介紹了WF 4.0 beta1的跟蹤配置。

你還可以通過試驗(yàn)下面的示例來獲得更多WF 4.0 beta1跟蹤機(jī)制的動手經(jīng)驗(yàn)。本文所使用的示例包含在下面的資源中:

WCF and WF samples for .NET 4 Beta 1

ETW tracking participant sample

跟蹤參與者概覽

正如《WF 4.0 beta1中的跟蹤機(jī)制》所述,WF 4.0的跟蹤基礎(chǔ)結(jié)構(gòu)由3個(gè)主要的組件構(gòu)成:

跟蹤記錄:由工作流運(yùn)行時(shí)放出。
跟蹤賬戶:允許你以聲明性、靈活的方式來訂閱跟蹤記錄。
跟蹤參與者:直接監(jiān)聽運(yùn)行時(shí)放出的跟蹤記錄,并以根據(jù)選擇的方式來處理它們。這種處理包括寫入到特定的輸出(比如文件、控制臺、ETW)、處理/匯總這些記錄、或者其他方式的組合。

跟蹤記錄流程

在WF 4.0 中,多個(gè)跟蹤參與者可以同時(shí)消費(fèi)跟蹤事件。每個(gè)跟蹤參與者都可以關(guān)聯(lián)到一個(gè)不同的跟蹤配置。

跟蹤參與者用于獲取工作流放出的跟蹤數(shù)據(jù),并將它們存儲到不同的媒介中。所以,跟蹤記錄的任何后期處理也可以通過跟蹤參與者來完成。在將來的文章中,我們會介紹WF 4.0跟蹤基礎(chǔ)結(jié)構(gòu)完整的可擴(kuò)展性,包括便攜自定義跟蹤參與者。

現(xiàn)成的ETW跟蹤參與者
在.NET 4中,我們內(nèi)置了一個(gè)現(xiàn)成的Event Tracing for Windows(ETW) 跟蹤參與者,它可以將跟蹤記錄輸出到ETW。ETW跟蹤參與者會將這些記錄寫入到一個(gè)ETW會話中,寫入的方式非常高效,對應(yīng)用性能的影響也非常小。

使用跟蹤參與者的優(yōu)勢之一便是可以在Windows事件查看器中查看跟蹤記錄,就在“應(yīng)用程序”分類和“系統(tǒng)”分類的旁邊。

下面是在Web.config文件中配置ETW跟蹤參與者的示例:

  1. <configuration> 
  2. <system.web> 
  3. <compilation targetFrameworkMoniker=".NETFramework,Version=v4.0"/> 
  4. </system.web> 
  5. <system.serviceModel> 
  6. <diagnostics etwProviderId="52A3165D-4AD9-405C-B1E8-7D9A257EAC9F" /> 
  7. <tracking> 
  8. <participants> 
  9. <add name="EtwTrackingParticipant" 
  10. type="System.Activities.Tracking.EtwTrackingParticipant, System.Activities, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" 
  11. profileName="HealthMonitoring_Tracking_Profile"/> 
  12. </participants> 
  13. </tracking> 
  14. <behaviors> 
  15. <serviceBehaviors> 
  16. <behavior name="SampleTrackingSample.SampleWFBehavior"> 
  17. <trackingComponents> 
  18. <add name="EtwTrackingParticipant"/> 
  19. </trackingComponents> 
  20. </behavior> 
  21. </serviceBehaviors> 
  22. </behaviors> 
  23. </system.serviceModel> 
  24. </configuration> 

在ETW中,事件是通過Provider Id來寫入到ETW會話中的。ETW跟蹤參與者所使用的Provider Id定義于Web.config的diagnostics節(jié)(在<system.serviceModel><diagnostics>中):

  1. <system.serviceModel> 
  2. <diagnostics etwProviderId="52A3165D-4AD9-405C-B1E8-7D9A257EAC9F" /> 
  3. …  

在沒有指定Provider Id時(shí),ETW跟蹤參與者會使用一個(gè)默認(rèn)的Provider Id。

跟蹤參與者定義于<system.serviceModel><tracking><participants>節(jié)。每個(gè)跟蹤參與者都有一個(gè)與之關(guān)聯(lián)的配置,藉此來制定它所訂閱的跟蹤記錄:

  1. <system.serviceModel> 
  2. …  
  3. <tracking> 
  4. <participants> 
  5. <add name="EtwTrackingParticipant" 
  6. type="System.Activities.Tracking.EtwTrackingParticipant, System.Activities, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" 
  7. profileName="HealthMonitoring_Tracking_Profile"/> 
  8. </participants> 
  9. </tracking> 
  10. … 

定義好它們之后,就可以把跟蹤參與者添加到服務(wù)行為中。這會把選中的跟蹤參與者添加到工作流實(shí)例的擴(kuò)展中,它們就這樣開始接收跟蹤記錄了。

為此,我們只需要像這樣來使用之前步驟中定義的跟蹤參與者名稱:

  1. <behaviors> 
  2. <serviceBehaviors> 
  3. <behavior name="SampleTrackingSample.SampleWFBehavior"> 
  4. <trackingComponents> 
  5. <add name="EtwTrackingParticipant"/> 
  6. </trackingComponents> 
  7. </behavior> 
  8. </serviceBehaviors> 
  9. </behaviors>  

下圖闡述了跟蹤數(shù)據(jù)經(jīng)過ETW跟蹤參與者的流轉(zhuǎn)過程:

 

跟蹤數(shù)據(jù)經(jīng)過ETW跟蹤參與者的流轉(zhuǎn)過程

一旦跟蹤數(shù)據(jù)到達(dá)了ETW會話中,就能夠以多種方式來消費(fèi)它。最常使用的方法之一是通過事件查看器來消費(fèi)這些事件,事件查看器是一個(gè)用來查看來自應(yīng)用程序和服務(wù)的日志與跟蹤記錄的Windows工具。

在事件查看器中消費(fèi)來自ETW跟蹤參與者的跟蹤數(shù)據(jù)
由ETW跟蹤參與者寫入到ETW會話中的事件可以被事件查看器消費(fèi)(當(dāng)使用默認(rèn)Provider Id時(shí))。這就允許快速地查看工作流放出的跟蹤記錄。

在事件查看器中啟用跟蹤記錄的方法如下:

打開事件查看器(eventvwr.exe)

定位到“應(yīng)用程序和服務(wù)日志”>“Microsoft”>“WCF”>“WF-Development”

右鍵單擊并選擇“Show Analytic and Debug logs”來啟用查看

啟用日志

在ETW Tracking Participant Sample中,工作流模擬了出錯的情況,ETW跟蹤參與者則用來跟蹤這個(gè)問題。下圖顯示了事件查看器中的跟蹤事件: 

事件查看器中的跟蹤事件

所有跟蹤記錄都擁有從100-112的ETW事件ID。其他事件ID(200-225)則用于其他類型的追蹤(Tracing)(比如WCF追蹤)。在將來的文章中,我們會全面地介紹與監(jiān)視數(shù)據(jù)視圖相關(guān)的追蹤和跟蹤事件。

通過EW跟蹤參與者放出的跟蹤記錄還會在事件查看器中顯示適當(dāng)?shù)陌踩墑e。這樣就能夠很輕松地識別工作流執(zhí)行過程中出現(xiàn)的任何警告或者錯誤。

.NET 4.0 beta1通過使用ETW跟蹤參與者以及它與事件查看器的集成,使得消費(fèi)跟蹤記錄變得又快捷又輕松。

預(yù)告

在將來的文章中,我們還會介紹自定義跟蹤參與者和如何放出自定義跟蹤記錄。與此同時(shí),我們也期待您對以下示例和動手實(shí)驗(yàn)的反饋:

WCF and WF samples for .NET 4 Beta 1

ETW tracking participant sample

【編輯推薦】

  1. 淺談WF 4.0 Beta1中的 跟蹤機(jī)制
  2. WF4.0 Beta1中的規(guī)則引擎變化
  3. 淺談WF 4.0 beta1的跟蹤配置
  4. 詳解工作流架構(gòu)與實(shí)現(xiàn)
  5. 解析UML工作流管理系統(tǒng)
責(zé)任編輯:彭凡 來源: cnblogs
相關(guān)推薦

2009-06-15 10:20:47

WF 4.0 Beta跟蹤機(jī)制

2009-06-22 09:36:06

WF 4.0 beta跟蹤配置

2009-06-17 10:51:58

WF4.0規(guī)則引擎

2009-05-20 10:26:09

Visual StudWF微軟

2009-07-28 10:00:47

VS2010 beta

2013-02-26 09:42:09

RailsRuby

2010-01-14 14:12:14

Visual Stud

2010-02-01 09:19:32

WF 4.0

2009-10-28 09:23:27

WF4.0 Beta2

2017-07-14 13:17:44

醫(yī)療信息化網(wǎng)絡(luò)

2021-12-01 06:43:36

OT網(wǎng)絡(luò)攻擊網(wǎng)絡(luò)安全威脅

2009-10-22 08:54:56

WF4 Beta 2

2012-04-16 15:18:15

JythonJVM

2010-01-14 09:35:10

WF4.0

2009-05-20 09:20:29

Visual Stud試用WPF

2009-12-01 10:37:45

Hiweed LinuLinuxDeepin

2009-06-29 10:12:32

軟件測試

2023-09-25 15:39:47

數(shù)據(jù)管理數(shù)據(jù)治理

2011-07-06 16:26:32

jQuery Mobi

2021-04-22 10:13:34

鴻蒙HarmonyOS應(yīng)用
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號