У меня есть приложение 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. Каково место, куда оно пойдет?
Erlang требует, чтобы cookie запускал rabbitmq - однако это не требуется для подключения к брокеру от клиента. Не могли бы вы объяснить, как начинается erlang/rabbitmq? Также уточните, какой клиент вы используете. – theMayer
@theMayer rabbitmq запускается как служба Windows (стандартный способ его установки). Я подключаюсь с помощью [MassTransit] (http://masstransit-project.com/), который использует библиотеку [RabbitMQ.Client] (https://www.nuget.org/packages/RabbitMQ.Client/) под капотом. –
Также @ theMayer Я не уверен, как «erlang требует, чтобы куки-файлы начали создавать кролик-квадраты» с моим опытом. Когда у меня был неправильный файл cookie в моей папке пользователя, кролик mq уже был запущен, и сотрудник мог подключиться к нему, но я не мог. Обновление моего '.erlang.cookie' позволило мне подключиться –