MassTransit无法访问MSMQ远程队列

时间:2013-06-25 16:01:50

标签: msmq message-queue masstransit

我们开发了一个基于MassTransit的演示,只要所有进程都在同一台服务器上运行,它就能正常运行。

然而,由于我的接收者想要在另一台机器上订阅自己,它会挂起一段时间,然后我们收到以下例外:

“System.InvalidOperationException:超时等待订阅服务响应。”

已检查:MSMQ(入站和出站),网络等的防火墙规则

可能出了什么问题?

  • 其他计算机上的订阅队列是私有的吗?这是一个问题吗?
  • 我们是否必须以某种特殊方式更改地址格式? msmq:// computerName / queueName不能用于远程连接吗?

看起来我们已经忘记了一些小事,因为之前没有其他人有这个问题......

2 个答案:

答案 0 :(得分:0)

最有可能的是MT假定有关远程队列的事情 - 它们是事务性的。可以查询本地队列以发现这些队列,但不能查询远程队列。如果您没有为订阅服务使用事务性队列,我会将?tx=false添加到远程队列URI的末尾。

接下来,仔细检查本地计算机上的传出队列。消息是在那里停留还是消失了?如果您使用的是事务性队列,那么这些机器可以一起注册DTC事务吗?

回答你的问题,所有队列都是私人的。这不是问题,它们仍可远程寻址。

我希望这有助于您进一步发展。之后,我会考虑加入邮件列表并在那里发布您的问题:https://groups.google.com/forum/?fromgroups#!forum/masstransit-discuss

答案 1 :(得分:0)

供参考:问题是接收队列中的URL错误,接收队列当然总是驻留在本地系统上。抱歉给您带来不便。