我想检索提供程序“Microsoft-Windows-HttpService”的 list xml 文件。
我正在使用 Microsoft.Diagnostics.Tracing 库在我的 .Net 应用程序中使用 ETW 事件。
这个库有一些内置的解析器,比如 KernelTraceEventParser、ClrTraceEventParser。但它没有解析器 Http 服务。我正在尝试为此创建新的解析器。
我尝试了以下命令来生成 list
perfView /onlyProviders=*Microsoft-Windows-HttpService collect
并从生成的 .zip 文件中运行以下命令以生成 list 。
perfView /noGui userCommand DumpEventSourceManifests PerfViewData.etl.zip
现在使用TraceParserGen生成CSharp代码
TraceParserGen ManifestFileName
但这给了我错误: 读取 list 文件 Microsoft-Windows-HttpService.manifest.xml 错误:错误 Microsoft-Windows-HttpService.manifest.xml(42): Undefined Id SrvdFrmCache
我也尝试为一些事件创建手动类,它读取事件但无法读取负载。
请告诉我如何为该提供商生成正确的 list 并生成解析器。
最佳答案
DumpEventSOurceManifests 命令应该只为在给定跟踪中处于事件状态的任何 System.Diagnostics.Tracing.EventSource 生成 manifest.xml 文件。由于 HttpService 不是 EventSource(它由 OS 实现,甚至不使用 .NET),因此将不起作用
有一个命令
PerfView userCommand DumpRegisteredManifest Microsoft-Windows-HttpService
这将对任何向操作系统注册自身的 ETW 提供者执行相同的操作(大多数操作系统提供者都这样做,包括 HttpService)。
关于c# - 检索注册提供商的 ETW 提供商 list ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24804293/