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

Lal*_*lit 3 c# etw

我想为Provider"Microsoft-Windows-HttpService"检索清单xml文件.

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

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

我尝试下面的命令来生成清单

perfView /onlyProviders=*Microsoft-Windows-HttpService collect 
Run Code Online (Sandbox Code Playgroud)

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

perfView /noGui userCommand DumpEventSourceManifests PerfViewData.etl.zip 
Run Code Online (Sandbox Code Playgroud)

现在使用TraceParserGen生成CSharp代码

TraceParserGen  ManifestFileName
Run Code Online (Sandbox Code Playgroud)

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

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

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

小智 6

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

有一个命令

PerfView userCommand DumpRegisteredManifest Microsoft-Windows-HttpService 
Run Code Online (Sandbox Code Playgroud)

对于任何向操作系统注册的ETW提供程序(大多数操作系统提供程序,包括HttpService),这都会做同样的事情.