使用用户名和密码时RabbitMQ C#连接出现问题

时间:2011-02-13 22:44:16

标签: c# .net rabbitmq

我在这里不知所措,所以我正在接触集体知识,希望有一个奇迹。

我使用默认设置在Linux机器上安装了RabbitMQ。

当我使用此代码(以及默认的RabbitMQ安装配置)时,一切都很顺利。

var connectionFactory = new ConnectionFactory();
connectionFactory.HostName = "192.168.0.12";
IConnection connection = connectionFactory.CreateConnection();

但是当我向RabbitMQ添加用户并尝试使用以下代码时(用户名和密码已被更改以保护无辜。:))

var connectionFactory = new ConnectionFactory();
connectionFactory.HostName = "192.168.0.12";
connectionFactory.UserName = "user";
connectionFactory.Password = "password";
IConnection connection = connectionFactory.CreateConnection();

connectionFactory.CreateConnection()方法抛出以下异常:

BrokerUnreachableException    
None of the specified endpoints were reachable

检查RabbitMQ日志文件我可以看到它抱怨凭据:

{amqp_error,access_refused,
"PLAIN login refused: user 'user' - invalid credentials",
'connection.start_ok'}}

问题在于我对用户名和密码充满信心,而我对编码的热爱无法在任何地方找到解决方案。

我必须遗漏一些明显的东西,但我无法弄清楚它是什么。 对于任何有用的指示,我将不胜感激。

3 个答案:

答案 0 :(得分:32)

答案 1 :(得分:5)

接受的答案对我不起作用(在Windows上)。

我必须安装管理工具:

rabbitmq-plugins enable rabbitmq_management

N.B。 rabbitmq-plugins位于C:\ Program Files(x86)\ RabbitMQ Server \ rabbitmq_server-3.3.1 \ sbin

然后,重新启动RabbitMQ服务。

然后我在包管理器中在Visual Studio中安装了EasyNetQ:

install-package easynetq

安装完成后,我可以使用位于以下位置的管理网站:

http://localhost:15672

N.B。默认用户名和密码是:guest

从这里,我选择了管理标签,原因在屏幕顶部清晰显示为黄色:

This user does not have permission to access any virtual hosts.
Use "Set Permission" below to grant permission to access virtual hosts. 

要解决此问题,我只需按下同一屏幕上的设置权限按钮等。

N.B。为此,您需要使用 rabbitmqctl add_user用户名密码或类似的方式添加用户(rabbitmqctl也在上面的目录中)。

答案 2 :(得分:5)

以下是如何使用密码agent创建名为agent的用户,将其设置为administrator并授予其readwrite访问权限vhost /

中的队列
rabbitmqctl add_user agent agent
rabbitmqctl set_user_tags agent administrator
rabbitmqctl set_permissions -p / agent ".*" ".*" ".*"