无法连接到 RabbitMQ 服务器

问题描述 投票:0回答:2

我正在尝试运行官方页面提供的示例代码: https://www.rabbitmq.com/tutorials/tutorial-one-dotnet.html

我正在使用此代码:

using RabbitMQ.Client;
using RabbitMQ.Client.Events;
using System;

class Send
{
    public static void Main()
    {
        var factory = new ConnectionFactory() { HostName = "[email protected]" };
        var connection = factory.CreateConnection() //this throwing exception
        var channel = connection.CreateModel()
    }
}

问题是,我总是遇到这些异常:

'RabbitMQ.Client.Exceptions.ConnectFailureException' 在 RabbitMQ.Client.dll 中 'RabbitMQ.Client.Exceptions.BrokerUnreachableException' 中 RabbitMQ.Client.dll

服务器未在本地主机上运行,因此我已将主机名更改为我的服务器主机名。我可以通过 ping 从我的计算机访问服务器,并且服务器正在侦听 5672 端口。

可能出了什么问题?

c# rabbitmq
2个回答
0
投票

好吧,评论就这么多了:

However the rabbit@.... is just the clustername, not refering to username
尽管我不熟悉 C# API,但我很确定这“不是”编写主机名的方式。您应该只先写IP,看看它是否有效,然后再写主机名。如果您愿意,可以使用 API 提供AMQP URI 集群是经纪商本身的事情;客户端不应该关心它们是否连接到集群中的节点,或者单个(“非集群”)实例......

其次,默认使用的“guest”

用户

(如果未指定用户)只能从本地主机访问代理(同样,默认情况下)。因此,如果您尝试从另一台计算机连接到服务器,则使用“guest”将不起作用。您需要创建一个新的 RMQ 用户并分配适当的权限。 请注意,您当然可以以访客用户有权访问的方式配置 RMQ(即使对于开发环境,即使您更改默认密码,这也是非常错误的),官方 RMQ docker 镜像就是以这种方式配置的(最后一次)无论如何,我检查了一下)。


0
投票
here

对于 RabbitMQ,它指出。该库的 4.x 和 5.x 版本系列需要 .NET 4.5.1+ 或 .NET Standard 1.5+ 实现(例如 .NET Core 2.x)。这恰好发生在一位同事身上,他发现更新运行时解决了问题,并且日志消息几乎没有提供任何关于原因的线索。

© www.soinside.com 2019 - 2024. All rights reserved.