我一直在尝试阅读Clustered MSMQ的性能计数器。我已经通过几个帖子找到了一种方法来读取这个值,我已经看到解决方案,它说要读取计数器值,需要创建一个名为“NetNameForPerfCounters”的RegistryKey。这是在HKEY_LOCAL_MACHINE \ SOFTWARE \ MICROSOFT \ MSMQ \ PARAMETER \ NetNameForPerfCounters下创建的,并且我已经指定了我的群集的网络名称。但一切都是徒劳的,它不会读任何东西。
var category = new PerformanceCounterCategory("MSMQ Queue", "<Clustered IP>")
Console.WriteLine(category.GetInstanceNames().Count().ToString());
这总是将计数返回为0。
答案 0 :(得分:0)
您认为IP地址可以用作machineName
,但我不确定它是否有效。我发现使用实际的计算机名称("."
或"acomputername"
)可以正常工作,但使用IP地址失败。
我在PowerShell中发现了相同的内容;使用IP失败:
Get-Counter -Counter (Get-Counter -ListSet "MSMQ Queue" -Computer 127.0.0.1 ).PathsWithInstances
但-computer "machinename"
的同一行成功并显示我的队列。
对于大型网络,我认为这意味着您需要@"domainname\machinename"
。