Search code examples
rabbitmqmasstransit

RabbitMQ: None of the specified endpoints were reachable?


Trying to publish a message to RabbitMQ using Masstransit but its failing.

I've looked at a few SO posts on this but none have a concrete answer. I've tried different ways of formatting the connection string, hard coding, etc but nothing seems to work.

If I connect outside of the app just via the browser, everything works fine.

In my app though, it just can't connect?

[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

I'm registering it like:

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;
            });
        });

If I just use the RabbitMQ library it also connects fine, so Masstransit seems to be the issue here?

/var/log/rabbitmq/rabbit@mg.log only logs failed connections via the management panel it seems, at least its not logging for failed app connects.


Solution

  • Check that you are using the right network port. Port 15672 is the default port for the web-based management console, which is not the same port MassTransit needs to connect to. That defaults to 5672 for plain AMQP, and 5671 for TLS-secured AMQP.

    To confirm which ports your RabbitMQ server is listening on, and that your web server can access them see this troubleshooting guide and the answers to this question.