0

我们开发了一个基于 MassTransit 的演示,只要所有进程在同一台服务器上运行,它就可以很好地工作。

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

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

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

可能出了什么问题?

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

看起来我们忘记了一些小事,因为之前没有人遇到过这个问题......

4

2 回答 2

0

供参考:问题一直是接收者队列中的 URL 错误,接收者队列当然总是驻留在本地系统上。任何不便敬请谅解。

于 2013-07-25T13:32:22.043 回答
0

最有可能的是 MT 假设一些关于远程队列的东西——它们是事务性的。可以查询本地队列以发现这一点,但不能查询远程队列。?tx=false如果您没有将事务队列用于订阅服务,我将添加到您的远程队列 URI 的末尾。

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

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

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

于 2013-06-26T01:25:16.420 回答