我们开发了一个基于MassTransit的演示,只要所有进程都在同一台服务器上运行,它就能正常运行。
然而,由于我的接收者想要在另一台机器上订阅自己,它会挂起一段时间,然后我们收到以下例外:
“System.InvalidOperationException:超时等待订阅服务响应。”
已检查:MSMQ(入站和出站),网络等的防火墙规则
可能出了什么问题?
看起来我们已经忘记了一些小事,因为之前没有其他人有这个问题......
答案 0 :(得分:0)
最有可能的是MT假定有关远程队列的事情 - 它们是事务性的。可以查询本地队列以发现这些队列,但不能查询远程队列。如果您没有为订阅服务使用事务性队列,我会将?tx=false
添加到远程队列URI的末尾。
接下来,仔细检查本地计算机上的传出队列。消息是在那里停留还是消失了?如果您使用的是事务性队列,那么这些机器可以一起注册DTC事务吗?
回答你的问题,所有队列都是私人的。这不是问题,它们仍可远程寻址。
我希望这有助于您进一步发展。之后,我会考虑加入邮件列表并在那里发布您的问题:https://groups.google.com/forum/?fromgroups#!forum/masstransit-discuss
答案 1 :(得分:0)
供参考:问题是接收队列中的URL错误,接收队列当然总是驻留在本地系统上。抱歉给您带来不便。