获取群集MSMQ的性能计数器

时间:2017-02-02 11:45:40

标签: c# msmq performancecounter

我一直在尝试阅读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。

1 个答案:

答案 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"

https://msdn.microsoft.com/en-us/powershell/reference/5.1/microsoft.powershell.diagnostics/get-counter