我遵循了关于 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 中的端口,结果是一样的。
关闭防火墙后,它开始工作。