我在我的 ASP.NET WebApi 应用程序中创建了一个 EventSource (WebApiEventSource)(作为 ITraceWriter 实现):
[EventSource(Name = "WebApi")]
public class WebApiEventSource : EventSource
{
public static readonly WebApiEventSource Log = new WebApiEventSource();
[Event(1)]
public void Event(string url, string message)
{
WriteEvent(1, url, message);
}
}
我检查了 EventSource 的方法在运行时是否被调用而没有错误。
然后我运行 PerfView 并在它的日志中检查它可以看到我的提供程序(EventSource):
解析规范 *WebApi 启用提供程序:*WebApi 级别:关键关键字:0x0 选项:无 值:Guid:fc7bbb67-1b01-557b-5e0e-c1c4e40b6a24
然后我使用过滤器“*WebApi”运行“收集”,在我的应用程序中执行一些操作并停止它。
但是在 etl 文件中我的提供商没有任何事件!“事件”部分甚至不包含我的提供者的名称。
我错过了什么?
更新:我找到了原因,请参阅下面的答案。