检索已注册提供商的ETW提供商清单

时间:2014-07-17 12:58:40

标签: c# etw

我想为Provider“Microsoft-Windows-HttpService”检索清单xml文件。

我正在使用Microsoft.Diagnostics.Tracing库在我的.Net应用程序中使用ETW事件。

这个库有一些内置的解析器,如KernelTraceEventParser,ClrTraceEventParser。但它没有解析器Http Service。我正在尝试为此创建新的解析器。

我尝试了以下命令来生成清单

perfView /onlyProviders=*Microsoft-Windows-HttpService collect 

从生成的.zip文件中,运行以下命令生成清单。

perfView /noGui userCommand DumpEventSourceManifests PerfViewData.etl.zip 

现在使用TraceParserGen生成CSharp代码

TraceParserGen  ManifestFileName

但是这给了我错误: 读取清单文件Microsoft-Windows-HttpService.manifest.xml 错误:错误Microsoft-Windows-HttpService.manifest.xml(42):未定义的Id SrvdFrmCache

我也尝试为少数事件创建手动类,它会读取事件但无法读取有效负载。

请告诉我如何为此提供程序生成正确的清单并生成解析器。

1 个答案:

答案 0 :(得分:5)

DumpEventSOurceManifests命令应该只为在给定跟踪中处于活动状态的任何System.Diagnostics.Tracing.EventSource生成manifest.xml文件。由于HttpService不是一个EventSource(它由操作系统实现而不使用.NET),因此无效

有一个命令

PerfView userCommand DumpRegisteredManifest Microsoft-Windows-HttpService 

对于任何向操作系统注册的ETW提供商(大多数操作系统提供商,包括HttpService)都会这样做。

相关问题