【问题标题】:Enumerate all outgoing Queues in MSMQ, C#枚举 MSMQ、C# 中的所有传出队列
【发布时间】:2011-09-05 16:58:09
【问题描述】:

使用 C# 和 .NET 3.5,如何获取 MSMQ 中所有传出队列的列表?我找到了this article about it,但正如您在下面看到的,我没有Microsoft Message Queue 3.0 Object Library 的COM 条目...

那么我怎样才能得到当前的传出队列列表呢?我想一定有办法,因为我可以在 Computer Management 中看到它们...

我能做什么?

【问题讨论】:

    标签: c# msmq


    【解决方案1】:

    我认为有两个很好的起点:

    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 的条目。我不确定如何纠正这种状态,或者如何解决它。但是,是的,这两篇文章引用了我在linked article 中列出的类似方法
    • 有没有办法与 C# 互操作?如果有我会怎么做?
    • 我看到你的代码更新了,我会尝试并报告!
    • ...好吧,这让我得到了我需要的格式名称列表。这是一个很好的开始。但是,您能向我解释一下您的代码 sn-p 的“科学性”吗?我一直在尝试为此找到解决方案,我想知道您的代码的原因。在那之后,我很乐意将您的答案标记为正确。
    • @BenjaminSussman 从我可以发现它仍然是 COM 或 WMI 来获取传出队列
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-01
    • 2011-03-20
    • 2011-06-16
    • 1970-01-01
    • 1970-01-01
    • 2011-04-21
    • 1970-01-01
    相关资源
    最近更新 更多