You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何查找VS创建的Service Fabric应用的ETW Provider名称或GUID?

如何查找Service Fabric应用的ETW Provider名称或GUID

嘿Paul,我之前在开发Service Fabric应用时也碰到过诊断事件查看器失效的问题,给你几个靠谱的方法来找到正确的ETW Provider信息:

  • 检查项目中的EventSource类
    VS向导生成的Service Fabric服务项目里,默认会包含一个继承自EventSource的类(通常命名为[YourServiceName]EventSource.cs)。打开这个文件,你能看到类似这样的属性标记:

    [EventSource(Name = "MyApp-StatelessService1", Guid = "12345678-1234-1234-1234-1234567890AB")]
    

    这里的NameGuid就是你需要填入诊断事件查看器的ETW Provider信息,这是最直接准确的来源。

  • 通过Windows事件查看器提取
    打开Windows事件查看器,导航到Applications and Services Logs > Microsoft > Service Fabric > Applications,找到你的应用对应的日志条目。右键点击任意一条事件,选择「事件属性」,切换到「详细信息」标签,在「系统」区域里就能找到Provider NameProvider GUID,这是实际产生事件的提供者信息,绝对不会错。

  • 用PowerShell命令查询
    打开PowerShell,运行以下命令来列出所有相关的ETW Providers:

    Get-WinEvent -ListProvider | Where-Object {$_.Name -like "*[YourAppOrServiceName]*"}
    

    [YourAppOrServiceName]替换成你的应用或服务名称,结果里会显示匹配的Provider名称和GUID。如果不确定名称,也可以先运行Get-WinEvent -ListProvider *ServiceFabric*来缩小范围。

  • 查看Service Fabric Explorer
    打开开发集群的Service Fabric Explorer(默认地址是http://localhost:19080/Explorer),找到你的应用,进入具体服务的详情页面,在「诊断」相关的配置区域里,有时候会直接显示ETW Provider的信息,也能作为参考。

另外要注意:开发集群环境下,向导生成的调试参数可能是通用的默认值,但如果你的服务自定义了EventSource,一定要用代码里实际定义的Provider信息。如果还是不行,检查一下服务是否正确启用了事件日志功能,确保EventSource的方法被正确调用生成事件。

内容的提问来源于stack exchange,提问作者Paul

火山引擎 最新活动