我想为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
我也尝试为少数事件创建手动类,它会读取事件但无法读取有效负载。
请告诉我如何为此提供程序生成正确的清单并生成解析器。
答案 0 :(得分:5)
DumpEventSOurceManifests命令应该只为在给定跟踪中处于活动状态的任何System.Diagnostics.Tracing.EventSource生成manifest.xml文件。由于HttpService不是一个EventSource(它由操作系统实现而不使用.NET),因此无效
有一个命令
PerfView userCommand DumpRegisteredManifest Microsoft-Windows-HttpService
对于任何向操作系统注册的ETW提供商(大多数操作系统提供商,包括HttpService)都会这样做。