ระบุคิวขาออกทั้งหมดใน MSMQ, C#

เมื่อใช้ C# และ .NET 3.5 ฉันจะรับรายการคิวขาออกทั้งหมดใน MSMQ ได้อย่างไร ฉันพบ บทความนี้เกี่ยวกับเรื่องนี้ แต่อย่างที่คุณเห็นด้านล่าง ฉันไม่มี รายการ COM สำหรับ Microsoft Message Queue 3.0 Object Library...

ฉันบังเอิญไปที่ Microsoft Message Queue 3.0 Object Library

แล้วฉันจะรับรายการคิวขาออกปัจจุบันได้อย่างไร ฉันคิดว่ามันต้องมีวิธีแน่ๆ เพราะฉันเห็นได้ใน Computer Management...

การจัดการคอมพิวเตอร์ + MSMQ

ฉันจะทำอย่างไร?


person Urda    schedule 31.05.2011    source แหล่งที่มา


คำตอบ (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

person BlackICE    schedule 31.05.2011
comment
ปัญหาที่ฉันมีกับสิ่งเหล่านั้น (อย่างน้อยเท่าที่ฉันสามารถบอกได้) คือฉันต้องเพิ่มการอ้างอิง COM อย่างไรก็ตาม ใน Visual Studio 2008 ของฉันไม่มีรายการสำหรับ Microsoft Message Queue 3.0 Object Library ฉันไม่แน่ใจว่าจะแก้ไขสถานะนี้หรือวิธีแก้ไขได้อย่างไร แต่ใช่แล้ว บทความทั้งสองอ้างอิงถึงวิธีการที่คล้ายกันซึ่งฉันได้ระบุไว้ใน บทความที่เชื่อมโยง - person Urda; 31.05.2011
comment
มีวิธีการทำงานร่วมกันนี้กับ C # หรือไม่ ถ้ามีจะทำยังไงคะ? - person Urda; 31.05.2011
comment
ฉันเห็นการอัปเดตโค้ดของคุณ ฉันจะลองใช้และรายงานกลับ! - person Urda; 31.05.2011
comment
...ตกลง นั่นทำให้ฉันมีรายการชื่อรูปแบบที่ฉันต้องการ นั่นเป็นการเริ่มต้นที่ดี อย่างไรก็ตาม คุณช่วยอธิบายวิทยาศาสตร์ของข้อมูลโค้ดของคุณให้ฉันฟังได้ไหม ฉันพยายามหาวิธีแก้ไขปัญหานี้แล้ว และฉันต้องการทราบเหตุผลเกี่ยวกับโค้ดของคุณ ฉันยินดีเป็นอย่างยิ่งที่จะทำเครื่องหมายคำตอบของคุณให้ถูกต้องหลังจากนั้น - person Urda; 01.06.2011
comment
เอาล่ะ ตอนนี้ฉันได้เรียนรู้เพิ่มเติมเกี่ยวกับ WMI แล้ว ขอบคุณสำหรับคำตอบที่ยอดเยี่ยมนี้ :) - person Urda; 02.06.2011
comment
ไม่มีวิธีการทำเช่นนี้โดยใช้ไลบรารี C# MSMQ หรือไม่ msdn.microsoft.com/en -us/library/ - person Benjamin Sussman; 26.02.2014
comment
@BenjaminSussman จากสิ่งที่ฉันพบว่ายังคงเป็น COM หรือ WMI เพื่อไปยังคิวขาออก - person BlackICE; 26.02.2014