1

我的 DEV 服务器是安装了 MSMQ 的 Windows 2008 R2。我的本地开发机器是Windows XP,也安装了MSMQ。显然它们是 2 个不同的 MSMQ 版本。

在我的代码中,我有类似的东西

        MessageQueue queue = new MessageQueue(@"formatname:DIRECT=OS:MyDevServer\Private$\MyQueue", QueueAccessMode.Send);
        Message message = new Message(value, new BinaryMessageFormatter());
        queue.Send(message, MessageQueueTransactionType.Single);
        queue.Close();
        return message.Id;

发送消息。我的目的是让消息出现在我的 DEV 服务器的私有队列中。

我在 DEV 服务器上创建了这个队列,权限为

  • 每个人 - 获取权限,发送消息
  • 我的域帐户来创建队列 - 我可以做任何事情
  • MyDevServer$ - 获取属性、获取权限、发送消息
  • 匿名登录 - 发送消息

我可以毫无例外地在本地运行代码,也可以获取消息Id。在我本地的 Windows XP 的 MSMQ 上,我可以看到我有Outgoing Queue-> DIRECT=OS:MyDevServer\Private$\MyQueue-> Queue Messages。新消息出现在此队列中。过了一会儿,消息消失了。但是我在我的开发服务器队列中的任何地方都看不到它。

更新:我发现 SO 发布“ Win2008 R2 上的 MSMQ 不会收到来自旧客户端的消息”这解决了我的问题,上面的代码是正确的,但是目标主机阻塞了流量。

4

0 回答 0