使用C#和.NET 3.5,如何獲取MSMQ中所有傳出隊列的列表?我發現this article about it但正如你可以看到下面我沒有爲Microsoft Message Queue 3.0 Object Library
的COM入口...枚舉MSMQ中的所有傳出隊列,C#
那麼,如何可以獲取當前傳出隊列上市?我想一定有辦法,因爲我可以看到他們在Computer Management
...
我能做些什麼?
使用C#和.NET 3.5,如何獲取MSMQ中所有傳出隊列的列表?我發現this article about it但正如你可以看到下面我沒有爲Microsoft Message Queue 3.0 Object Library
的COM入口...枚舉MSMQ中的所有傳出隊列,C#
那麼,如何可以獲取當前傳出隊列上市?我想一定有辦法,因爲我可以看到他們在Computer Management
...
我能做些什麼?
兩個很好的地方開始我覺得這是這些:
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
我去看看我可以工作了一些代碼。
也許不是,那些看起來很老,還在尋找。
繼承人一些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
我與那些人(至少據我所知)的問題是我不得不添加COM參考。但是,在我的Visual Studio 2008中沒有「Microsoft Message Queue 3.0 Object Library」條目。我不知道如何糾正這種狀態,或者如何解決這個問題。但是,是的,這兩篇文章引用了我在[鏈接文章](http://www.codeproject.com/KB/IP/MSMQ.aspx) – Urda 2011-05-31 18:22:36
中列出的類似方法。是否有辦法與C#進行Interop?如果有我該怎麼做? – Urda 2011-05-31 19:09:31
我看到您的代碼更新,我會嘗試並報告回來! – Urda 2011-05-31 19:41:43