MSMQ:为什么无法从远程专用队列中检索队列详细信息?



我正在尝试检索有关远程专用队列中消息的详细信息,但我继续收到 MessageQueueException "无效的队列路径名称"。 我能够使用 MessageQueue.GetPrivateQueuesByMachine 检索私有队列列表,但是,当我尝试查看返回的队列的任何详细信息时,我得到异常。

var msmqQueues = MessageQueue.GetPrivateQueuesByMachine(serverName);
msmqQueues[0].CreateCursor();  // Throws MessageQueueException "Invalid queue path name"
msmqQueues[0].Label; // also Throws MessageQueueException "Invalid queue path name"

奇怪的是,GetPrivateQueuesByMachine 调用似乎有效,因为 msmqQueues 中有正确数量的项目,我可以访问 .它们的路径属性(它看起来像一个典型的 FormatName 路径 - "FormatName:DIRECT=OS:SERVERNAME\private$\QUEUENAME")。

工作组模式下私有队列的许多功能和属性都无法远程使用,只是野兽的本性。大多数方法和属性应该在其 msdn 页面上有一个概述可用性的矩阵,例如 http://msdn.microsoft.com/en-us/library/system.messaging.messagequeue.label.aspx

最新更新