使用visual studio创建无状态可靠服务项目时,您将获得一个自定义事件源,该源从.net框架中对EventSource类进行子类化。由于EventSource与ETW的事件提供者相同,因此必须有一个与之关联的唯一GUID(以区别于其他ETW提供者)。此外,ETW要求清单文件以便跟踪正常工作。 EventSource可能隐藏了开发人员的所有这些信息。有没有办法查看ETW的提供商信息(来自我服务中的自定义EventSource)以及ETW清单文件?
答案 0 :(得分:2)
事实证明这非常简单。 EventSource类具有以下静态方法:
public static string GenerateManifest(
Type eventSourceType,
string assemblyPathToIncludeInManifest
)
调试服务结构服务时,可以执行以下操作:
System.Diagnostics.Debug.WriteLine(System.Diagnostics.Tracing.EventSource.GenerateManifest(typeof(ServiceEventSource), "C:\temp"))
它应该为您提供格式良好的清单xml。
答案 1 :(得分:0)
您可以简单地在项目中安装以下nuGet程序包,该程序包具有子类化EventSource类的自定义事件源
Microsoft.Diagnostics.Tracing.EventRegister
在构建项目后,您将在bin目录中获得清单和dll文件。