我有一个小域(6台服务器),我需要使用MSMQ。这个项目的代码库来自一家使用WIN2K3服务器的公司的一个5年前的项目,所有功能都工作正常。
我已经在所有服务器上启用了MSMQ功能(包括AD集成)。
我已经在所有服务器上创建了公共队列。
当代码尝试列出远程服务器上的所有公共队列时,代码指示有0个公共队列。
MessageQueue[] MqList = MessageQueue.GetPublicQueuesByMachine(HostName);它不会抛出异常,只是看不到队列。
此外,当我使用“计算机管理”管理单元连接到远程计算机时,我无法看到“消息队列”节点。我能够在WIN2K3中看到远程消息队列节点。(请参见图像)

我认为这是一个权限问题,但我已经尝试过尽可能广泛地开放权限,但我仍然得不到任何爱。
发布于 2012-07-03 19:10:45
方法GetPublicQueuesByMachine()确实是,而不是通过远程访问提供的。
您可以在MSDN文档中的功能矩阵中看到这一点:MessageQueue.GetPublicQueuesByMachine
下表显示了此方法在各种工作组模式下是否可用。
工作组模式可用-本地计算机无本地计算机和直接格式名称无远程计算机无远程计算机和直接格式名称否
我最近才发现Queue类的大多数方法都有一个这样的特征矩阵。:-)
发布于 2013-01-17 04:20:37
我还发现GetPublicQueuesByMachine方法在Win2K8服务器上不起作用。
我发现GetPublicQueues确实起作用了。所以我使用了它,并以这种方式拉出了我需要的队列。
https://stackoverflow.com/questions/11123022
复制相似问题