服务模型性能计数器实例名称
本文关键字:实例 性能计数器 模型 服务 | 更新日期: 2023-09-27 18:37:11
我正在尝试直接连接到ServiceModel发出的性能计数器(用于服务,端点和操作)。问题是,当我尝试与某个服务(或端点/操作)相关联时,我需要指定计数器的实例名称。
根据 MSDN 实例名称简单的模式,但是,在某些情况下,当实例名称的某个组件(URI、合约名称等)太长时,它会缩短,并在字符串的开头或结尾添加哈希代码。本文没有具体说明如何对其进行哈希处理。
所以我的问题有没有办法根据服务名称及其地址获取 ServiceModel 实例名称
这并不理想,但是您可以将当前用于生成计数器实例名称的.NET实现复制到您自己的代码/应用程序中,以编程方式从完整的服务名称和地址生成相同的名称。
您可以在此处查看 WCF 使用的代码:
对于服务性能计数器:
http://referencesource.microsoft.com/#System.ServiceModel/System/ServiceModel/Diagnostics/ServicePerformanceCountersBase.cs,6d61d34585241697
对于终结点性能计数器:
http://referencesource.microsoft.com/#System.ServiceModel/System/ServiceModel/Diagnostics/EndpointPerformanceCountersBase.cs,e3319d41297320e3
对于操作性能计数器:
http://referencesource.microsoft.com/#System.ServiceModel/System/ServiceModel/Diagnostics/OperationPerformanceCountersBase.cs,5e170817afd5d0ba
缺点是,对用于命名实例的 .NET 算法的任何更改都会破坏您的实现。
我和你一样沮丧,但没有找到更好的解决方案。