我正在尝试使用 EasyNetQ 连接到 RabbitMQ。RabbitMQ 在远程虚拟机上。
_rabbitBus = RabbitHutch.CreateBus(
string.Format("host={0};virtualhost={1}",
_hostSettings.Host, _hostSettings.VHost),
x => x.Register<IEasyNetQLogger>(l => _logger));
_rabbitBus.Subscribe<Message>(_topic, ReceiveMessage, m => m.WithTopic(_topic));
我得到一个 TimeoutException The operation requested on PersistentChannel timed out.
。远程 VM 正在回复 ping,端口 5672 和 15672 已打开(使用 nmap 检查)。可以从我的主机访问 RabbitMQ 管理。
此外,如果 RabbitMQ 在我的本地机器上运行,它工作正常。我尝试从局域网中的其他电脑连接到安装在我电脑上的 RabbitMQ,它也可以工作。
我得出一个假设,它与它在虚拟机上的事实有关,并且可能存在连接问题。但同样,Rabbit 的网络管理工作正常。
还在 EasyNetQ 测试应用程序上进行了测试 - 适用于本地主机,但不适用于远程。
输出如下:
DEBUG: Trying to connect
ERROR: Failed to connect to Broker: '192.168.0.13', Port: 5672 VHost: '/'.
ExceptionMessage: 'None of the specified endpoints were reachable'
ERROR: Failed to connected to any Broker. Retrying in 5000 ms
- EasyNetQ v0.28.4.242