我正在尝试直接连接到ServiceModel发出的性能计数器(用于服务,端点和操作)。问题是,当我尝试与某个服务(或端点/操作)关联时,我需要指定计数器的实例名称。
根据MSDN实例名称简单的模式, 但是在某些情况下,当实例名称的一个组件(uri,合同名称等)太长时,它会缩短,并且在字符串的开头或结尾添加哈希码。本文没有说明如何它是哈希。
所以我的问题是有一种方法可以根据服务名称及其地址获取ServiceModel实例名称
答案 0 :(得分:2)
我知道这不太理想,但您可以将当前用于生成计数器实例名称的.NET实现复制到您自己的代码/应用程序中,以编程方式从完整的服务名称和地址生成相同的名称。
您可以在此处查看WCF使用的代码:
对于SerivcePerformanceCounters:
对于EndpointPerformanceCounters:
对于OperationPerformanceCounters:
缺点是对命名实例的.NET算法的任何更改都将破坏您的实现。
我很沮丧,但没有找到更好的解决方案。