工作流程追蹤提供使用 .NET Framework 追蹤接聽程序來擷取診斷資訊的方式。 如果偵測到應用程式發生問題,然後在問題解決后再次停用,則可以啟用追蹤。 有兩種方式可以啟用工作流程的偵錯追蹤。 您可以使用事件追蹤查看器進行設定,或使用 System.Diagnostics 將追蹤事件傳送至檔案。
在 ETW 中啟用偵錯追蹤
若要使用 ETW 啟用追蹤,請在事件檢視器中啟用偵錯通道:
流覽至事件查看器中的分析和偵錯記錄節點。
在 [事件查看器] 的樹視圖中,瀏覽至 [事件查看器->應用程式及服務記錄]->Microsoft-Windows->Application Server->Applications。 以滑鼠右鍵按兩下 [應用程式伺服器應用程式 ],然後選取 [檢視顯示>分析和偵錯記錄]。 以滑鼠右鍵按兩下 [ 偵錯] ,然後選取 [ 啟用記錄]。
當工作流程執行時,偵錯訊息和追蹤會發送到 ETW 偵錯通道,然後可以在事件查看器中檢視。 流覽至事件查看器->應用程式和服務記錄檔->Microsoft->Windows->Application Server-Applications。 以滑鼠右鍵按一下 [偵錯] 並選取 [重新整理]。
預設分析追蹤緩衝區大小僅為 4 KB:建議將大小增加到 32 KB。 若要執行這項操作,請執行下列步驟。
在目前的架構目錄中執行下列命令(例如 C:\Windows\Microsoft.NET\Framework\v4.0.21203):
wevtutil um Microsoft.Windows.ApplicationServer.Applications.man
將 <Windows.ApplicationServer.Applications.man 檔案中的 bufferSize> 值變更為 32。
<channel name="Microsoft-Windows-Application Server-Applications/Analytic" chid="ANALYTIC_CHANNEL" symbol="ANALYTIC_CHANNEL" type="Analytic" enabled="false" isolation="Application" message="$(string.MICROSOFT_WINDOWS_APPLICATIONSERVER_APPLICATIONS.channel.ANALYTIC_CHANNEL.message)" > <publishing> <bufferSize>32</bufferSize> </publishing> </channel>
在目前的架構目錄中執行下列命令(例如 C:\Windows\Microsoft.NET\Framework\v4.0.21203):
wevtutil im Microsoft.Windows.ApplicationServer.Applications.man
備註
如果您使用 .NET Framework 4 用戶端配置檔,您必須先從 .NET Framework 4 目錄執行下列命令來註冊 ETW 指令清單: ServiceModelReg.exe –i –c:etw
使用 System.Diagnostics 啟用偵錯追蹤
您可以在工作流程應用程式的 App.config 檔案或工作流程服務的 Web.config 中設定這些接聽程式。 在此範例中,會設定TextWriterTraceListener,以將追蹤資訊儲存至目前目錄中的 MyTraceLog.txt 檔案。
<configuration>
<system.diagnostics>
<sources>
<source name="System.Activities" switchValue="Information">
<listeners>
<add name="textListener" />
<remove name="Default" />
</listeners>
</source>
</sources>
<sharedListeners>
<add name="textListener"
type="System.Diagnostics.TextWriterTraceListener"
initializeData="MyTraceLog.txt"
traceOutputOptions="ProcessId, DateTime" />
</sharedListeners>
<trace autoflush="true" indentsize="4">
<listeners>
<add name="textListener" />
</listeners>
</trace>
</system.diagnostics>
</configuration>