使用C#和.NET 3.5,如何获取MSMQ中所有传出队列的列表?我发现
this article about it,但如下可以看到,我没有COM条目的Microsoft Message Queue 3.0对象库…
那么如何获取当前的出站队列列表?我认为一定有办法,因为我可以在计算机管理中看到它们
我能做什么?
解决方法
两个好的地方开始我认为是这些:
http://msdn.microsoft.com/en-us/library/ms703173%28v=vs.85%29.aspx
http://msdn.microsoft.com/en-us/library/ms711378%28v=vs.85%29.aspx
我会看看我是否可以编写一些代码.
也许不是,那些看起来老,还在看.
Dim Locator Set Locator = CreateObject("WbemScripting.SWbemLocator") Dim objs Set Service = Locator.ConnectServer(".","root\cimv2") Set objs = Service.ExecQuery("Select * From Win32_PerfRawData_MSMQ_MSMQQueue") For Each object In objs WScript.Echo "Name: " & object.Name Next
using System.Management; namespace TestMSMQStuff { class Program { static void Main(string[] args) { System.Management.SelectQuery q = new SelectQuery("Select * From Win32_PerfRawData_MSMQ_MSMQQueue"); ManagementObjectSearcher s = new ManagementObjectSearcher(q); foreach (var r in s.Get()) { Console.WriteLine(r.Properties["Name"].Value); } } } }
看起来所有的出站队列都以“os:”开头
需要参考System.Management和System.Management.Instrumentation