2011-05-31 71 views
10

使用C#和.NET 3.5,如何獲取MSMQ中所有傳出隊列的列表?我發現this article about it但正如你可以看到下面我沒有爲Microsoft Message Queue 3.0 Object Library的COM入口...枚舉MSMQ中的所有傳出隊列,C#

I accidentally the Microsoft Message Queue 3.0 Object Library

那麼,如何可以獲取當前傳出隊列上市?我想一定有辦法,因爲我可以看到他們在Computer Management ...

Computer Management + MSMQ

我能做些什麼?

回答

3

兩個很好的地方開始我覺得這是這些:

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

+0

我與那些人(至少據我所知)的問題是我不得不添加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

+0

中列出的類似方法。是否有辦法與C#進行Interop?如果有我該怎麼做? – Urda 2011-05-31 19:09:31

+0

我看到您的代碼更新,我會嘗試並報告回來! – Urda 2011-05-31 19:41:43