1

我有一个小域(6 个服务器),我需要使用 MSMQ。该项目的代码库来自一家使用 WIN2K3 服务器的公司的一个 5 年历史的项目,并且所有功能都可以正常工作。

我已在所有服务器上启用了 MSMQ 功能(包括 AD 集成)。

我在所有服务器上创建了 PUBLIC 队列。

当代码尝试列出远程服务器上的所有公共队列时,代码指示有 0 个公共队列。

MessageQueue[] MqList = MessageQueue.GetPublicQueuesByMachine(HostName);

它不会抛出异常,它根本看不到队列。

此外,当我使用计算机管理管理单元连接到远程计算机时,我看不到消息队列节点。我能够在 WIN2K3 中看到远程消息队列节点。(见图片)在此处输入图像描述

我认为这是一个权限问题,但我试图尽可能广泛地开放权限,但我仍然没有得到爱。

4

2 回答 2

0

我还发现 GetPublicQueuesByMachine 方法在 Win2K8 服务器上不起作用。

我发现 GetPublicQueues 确实有效。所以我使用它并以这种方式拉出我需要的队列。

于 2013-01-16T20:20:36.960 回答
0

该方法GetPublicQueuesByMachine()确实不适用于远程访问。

您可以在 MSDN 文档的功能矩阵中看到这一点:MessageQueue.GetPublicQueuesByMachine

下表显示了此方法是否适用于各种工作组模式。

 Workgroup mode                         Available
 --------------                         ---------
 Local computer                         No
 Local computer and direct format name  No
 Remote computer                        No
 Remote computer and direct format name No

我最近才发现 Queue 类的大多数方法都有这样的特征矩阵。:-)

于 2012-07-03T11:10:45.133 回答