2

我正在尝试检索有关远程专用队列中消息的详细信息,但我继续收到 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 中有正确数量的项目,我可以访问它们的 .Path 属性(它看起来像一个典型的 FormatName 路径 - “FormatName:DIRECT=OS:SERVERNAME\private$\队列名”)。

4

1 回答 1

0

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

于 2012-06-20T23:24:27.267 回答