Проблема подключения RabbitMQ C# при использовании имени пользователя и пароля



Я здесь в растерянности, поэтому я обращаюсь к коллективному знанию в надежде на чудо.



Я установил RabbitMQ на Linux box, используя значения по умолчанию.



Когда я использую этот код (и конфигурацию установки 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'}}


Дело в том, что я уверен в имени пользователя и пароле, и я не могу из любви к кодированию найти решение этой проблемы где-либо.

Должно быть, я упускаю что-то очевидное, но не могу понять, что именно.
Я был бы благодарен за любые полезные советы.
961   3  

3 ответов:

Кажется, что я нашел решение моей собственной проблемы. Работает следующий код:

ConnectionFactory factory = new ConnectionFactory();
factory.UserName = "user";
factory.Password = "password";
factory.VirtualHost = "/";
factory.Protocol = Protocols.FromEnvironment();
factory.HostName = "192.168.0.12";
factory.Port = AmqpTcpEndpoint.UseDefaultPort;
IConnection conn = factory.CreateConnection();
Спасибо, что выслушали, и, возможно, это, по крайней мере, может быть полезно кому-то еще. :)

Принятый ответ не сработал для меня (на Windows).

Мне пришлось установить инструменты управления:

rabbitmq-plugins enable rabbitmq_management

Б. Н. в RabbitMQ-плагинов в файлах C:\Program (х86)\в RabbitMQ сервер\rabbitmq_server-3.3.1\переключатель

Затем перезапустите службу RabbitMQ.

Затем я установил EasyNetQ в Visual Studio в диспетчере пакетов:

install-package easynetq

С этим установленным, я мог бы использовать веб-сайт администратора, расположенный по адресу:

http://localhost:15672

N. B. имя пользователя и пароль по умолчанию это: гость

Отсюда я выбрал вкладку Admin, и причина была четко отображена желтым цветом в верхней части экрана:

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

Чтобы исправить проблему, я просто нажал кнопку Set permission на том же экране et voila

N. B. Чтобы это сработало, вам нужно добавить пользователя, используя rabbitmqctl add_user username password или аналогичный (rabbitmqctl также находится в каталоге выше).

Вот как создать пользователя с именем agent с паролем agent, установить его как administrator и дать ему read и write доступ ко всем очередям в vhost /

rabbitmqctl add_user agent agent
rabbitmqctl set_user_tags agent administrator
rabbitmqctl set_permissions -p / agent ".*" ".*" ".*"

Comments

    Ничего не найдено.