尝试使用Mastransit向RabbitMQ发布消息,但失败。
我看了一些关于这个问题的文章,但是没有一个有具体的答案。我尝试了不同的方法来格式化连接字符串,硬编码等等,但是似乎没有什么效果。
如果我只是通过浏览器连接到应用程序之外,一切都很好。
但在我的应用程序中,它就是无法连接?
[09:09:46 WRN] Connection Failed: rabbitmq://{host}:15672/
RabbitMQ.Client.Exceptions.BrokerUnreachableException: None of the specified endpoints were reachable
---> System.IO.IOException: connection.start was never received, likely due to a network timeout
我把它注册为:
serviceCollection.AddMassTransit(x =>
{
x.UsingRabbitMq((rabbitContext, rabbitConfig) =>
{
rabbitConfig.Host(new Uri("amqps://{host}:15672/"), h =>
{
h.Username("admin");
h.Password("...");
});
rabbitConfig.ConfigureEndpoints(rabbitContext);
rabbitConfig.Durable = true;
});
});
如果我只是使用RabbitMQ库,它也连接得很好,所以Masstransit似乎是这里的问题?
/var/log/rabbitmq/rabbit@mg.log似乎只通过管理面板记录失败的连接,至少它不记录失败的应用程序连接。
1条答案
按热度按时间nr9pn0ug1#
检查您是否使用了正确的网络端口。端口15672是 * 基于Web的管理控制台 * 的默认端口,它与MassTransit需要连接的端口 * 不是 * 同一个端口。对于普通AMQP,默认端口为 5672,对于TLS保护的AMQP,默认端口为 5671。
要确认您的RabbitMQ服务器正在侦听哪些端口,以及您的Web服务器可以访问它们,请参见this troubleshooting guide和the answers to this question。