【发布时间】:2021-04-09 00:05:31
【问题描述】:
我按照 RabbitMQ 上的教程进行操作,但遇到了创建连接时发生的异常。整个方法如下图:
class Program
{
static void Main(string[] args)
{
var factory = new ConnectionFactory { Uri = new Uri("amqp://guest:guest@localhost:15672/") };
using var connection = factory.CreateConnection();
using var channel = connection.CreateModel();
channel.QueueDeclare("demo-queue",
durable: true,
exclusive: false,
autoDelete: false,
arguments: null);
var consumer = new EventingBasicConsumer(channel);
consumer.Received += (sender, e) =>
{
var body = e.Body.ToArray();
var message = Encoding.UTF8.GetString(body);
Console.WriteLine(message);
};
channel.BasicConsume("demo-queue", true, consumer);
}
}
在这条线上:using var connection = factory.CreateConnection(); 我收到了这个:
RabbitMQ.Client.Exceptions.BrokerUnreachableException: '没有一个指定的端点是可达的'
还有三个内部异常:
ExtendedSocketException:无法建立连接,因为目标机器主动拒绝了它。 127.0.0.1:15672
ConnectFailureException:连接失败
AggregateException:发生一个或多个错误。 (连接失败)
这个异常的原因是什么? Uri 是错误的还是事先没有正确设置? RabbitMQ 似乎运行良好,因为我可以登录 http://localhost:15672/ 并且它已启动并运行。
提前谢谢你。
编辑:我把 5672 作为 Uri 中的端口,结果是一样的。
【问题讨论】:
-
ampq 和 http 协议不一样。 5672 - 如果设置了默认配置,请尝试此端口
-
谢谢@Igor。不幸的是,结果还是一样。
标签: .net .net-core rabbitmq console-application messaging