c# - 检索注册提供商的 ETW 提供商 list

标签 c# etw

我想检索提供程序“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/

相关文章:

c# - 我需要在页面加载后发帖,但我使用的是 Thread

c# - EventSource 事件 ID 和 TPL

c# - 从 URL 加载 Xml 时出现超时错误

c# - 将应用程序注册到 URI 方案

etw - 如何使用 wpa 查看通用事件详细信息?

c# - EventLog 服务帐户 (NT SERVICE\EventLog) 找不到或无法访问发布者 MyTestSource 资源

windows-8.1 - 仅为提供程序中的某些特定 ETW 任务激活堆栈?

.net-4.5 - .Net 4.5 EventSource ETW 提供程序未显示在提供程序列表中

c# - 社交对象 - 数据库结构、过滤、排序、可扩展性的最佳实践

c# - 在#mysql中使用外键