0

У меня есть приложение asp.net mvc, которое взаимодействует с RabbitMq. Все отлично работает на местном уровне.Не удается подключиться к RabbitMq из приложения Asp.Net

Однако на нашем сервере развертывания он не может подключиться

DEBUG|MassTransit.RabbitMqTransport.Integration.RabbitMqConnectionCache|Connecting: [email protected]:5672/| 
ERROR|MassTransit.RabbitMqTransport.RabbitMqReceiveTransport|RabbitMQ connection failed: Connect failed: [email protected]:5672/| 

Что я могу собрать это

  • Для того, чтобы подключиться к RabbitMQ вам нужно в действующий .erlang.cookie (на окнах) ваш пользователь root
  • Насколько я могу судить, этот файл cookie создается при установке rabbitmq
  • В разработке мы используем localdb, который работает как d пользователь eveloper (который имеет этот файл cookie)
  • В процессе производства приложение запускается из IIS, который использует пул приложений и встроенную учетную запись ApplicationPoolIdentity. Которая не имеет папки пользователя для файла .erlang.cookie, в котором он находится.

Так что вопрос становится ... что теперь? Как это работает?

Очевидно, что мы могли бы создать выделенного пользователя для веб-приложения, но наш системный администратор, по-видимому, очень не хочет этого делать.

Еще одна подсказка, что, когда я пытался RDP, войдите в систему как я и подключился к кролику, я обнаружил, что не могу. После устранения неполадок я обнаружил, что мой файл cookie не совпадает с тем, который мог! Я заменил его на один из c:\windows\.erlang.cookie и смог подключиться из cli. Кажется возможным, как там печенье установлено где-то для applicationpoolidentity, но это неправильный файл cookie. Каково место, куда оно пойдет?

+0

Erlang требует, чтобы cookie запускал rabbitmq - однако это не требуется для подключения к брокеру от клиента. Не могли бы вы объяснить, как начинается erlang/rabbitmq? Также уточните, какой клиент вы используете. – theMayer

+0

@theMayer rabbitmq запускается как служба Windows (стандартный способ его установки). Я подключаюсь с помощью [MassTransit] (http://masstransit-project.com/), который использует библиотеку [RabbitMQ.Client] (https://www.nuget.org/packages/RabbitMQ.Client/) под капотом. –

+0

Также @ theMayer Я не уверен, как «erlang требует, чтобы куки-файлы начали создавать кролик-квадраты» с моим опытом. Когда у меня был неправильный файл cookie в моей папке пользователя, кролик mq уже был запущен, и сотрудник мог подключиться к нему, но я не мог. Обновление моего '.erlang.cookie' позволило мне подключиться –

ответ

1

Файлы cookie Erlang используются для межсетевой связи, будь то для кластеризации RabbitMQ или для связи с RabbitMQ через командную строку с использованием rabbitmqctl.

Если у вас возникли проблемы с подключением AMQP, тогда файл erlang cookie здесь не имеет никакого отношения.

Посмотрите на контроль доступа https://www.rabbitmq.com/access-control.html, чтобы узнать, правильно ли настроен ваш пользователь.

В то же время проверьте журналы сервера, чтобы узнать, почему соединение было отклонено.

+0

Да, журналы также не были заселены. В конце концов мы выяснили, что у нас возникли проблемы из-за (конечно) разрешений. Печенье было образованным предположением о том, что было задействовано. –

Смежные вопросы