C# 无法向远程MSMQ发送消息

C# 无法向远程MSMQ发送消息,c#,msmq,C#,Msmq,我的开发服务器是安装了MSMQ的Windows 2008 R2我的本地开发计算机是Windows XP,也安装了MSMQ。显然,它们是两个不同的MSMQ版本 在我的代码中,我有 MessageQueue queue = new MessageQueue(@"formatname:DIRECT=OS:MyDevServer\Private$\MyQueue", QueueAccessMode.Send); Message message = new Message(

我的开发服务器是安装了MSMQ的Windows 2008 R2我的本地开发计算机是Windows XP,也安装了MSMQ。显然,它们是两个不同的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上,我可以看到我有
传出队列
->
DIRECT=OS:MyDevServer\Private$\MyQueue
->
队列消息
。新消息将显示在此队列中。过了一会儿,消息就不见了。但是我在我的开发服务器队列的任何地方都看不到它


更新:我发现SO post“”解决了我的问题,上面的代码是正确的,但目标主机阻止了通信。

我遵循并启用了UDP端口3527来解决问题。通常鼓励海报将其解决方案作为答案发布并自行接受。这似乎是自我夸大,但是,它确保了问题在被回答时得到正确的索引。