问题描述
||
使用C#和.NET 3.5,如何获得MSMQ中所有传出队列的列表?我找到了有关此的文章,但正如您在下面看到的,我没有
Microsoft Message Queue 3.0 Object Library
的COM条目...
那么如何获得当前的传出队列列表?我想一定有办法,因为我可以在ѭ1看到它们。
我能做什么?
解决方法
我认为有两个不错的起点:
http://msdn.microsoft.com/zh-cn/library/ms703173%28v=vs.85%29.aspx
http://msdn.microsoft.com/zh-cn/library/ms711378%28v=vs.85%29.aspx
我看看是否可以处理一些代码。
也许不是,那些看起来老旧,还在寻找。
这里有一些WScript可以向您显示,但仍在寻找.Net代码:
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