EasyNetQ не удается опубликовать в RabbitMQ - Стойкость PersistentChannel
Я пытаюсь подключиться к RabbitMQ с помощью EasyNetQ.
RabbitMQ находится на удаленной виртуальной машине.
_rabbitBus = RabbitHutch.CreateBus(
string.Format("host={0};virtualhost={1}",
_hostSettings.Host, _hostSettings.VHost),
x => x.Register<IEasyNetQLogger>(l => _logger));
_rabbitBus.Subscribe<Message>(_topic, ReceiveMessage, m => m.WithTopic(_topic));
Я получаю исключение TimeoutException The operation requested on PersistentChannel timed out.
.
Удаленная виртуальная машина отвечает на пинги, порты 5672 и 15672 открываются (отмечены с помощью nmap).
Управление RabbitMQ можно получить с моего хоста.
Кроме того, если RabbitMQ запущен на моей локальной машине, он отлично работает.
Я попытался подключиться к RabbitMQ, установленному на моем компьютере, с другого ПК в локальной сети, и он также работает.
Я пришел к предположению, что это связано с тем, что это на виртуальной машине, и, возможно, что-то не так в связи. Но опять же, веб-управление Rabbit отлично работает.
Также тестируется в приложении EasyNetQ Test - работает на localhost, но не на удаленном.
Вывести следующее:
DEBUG: Trying to connect
ERROR: Failed to connect to Broker: '192.168.0.13', Port: 5672 VHost: '/'.
ExceptionMessage: 'None of the specified endpoints were reachable'
ERROR: Failed to connected to any Broker. Retrying in 5000 ms
Ответы
Ответ 1
Как Майк предположил, что у меня есть это, а затем проверил разрешения. "Гость" может подключаться только через localhost (см. RabbitMQ Access Control.) Попробуйте добавить пользователя с разрешениями с помощью интерфейса управления, а затем подключитесь, как показано ниже
var _bus = RabbitHutch.CreateBus(string.Format("host={0};virtualhost={1};username={2};password={3}",
_hostSettings.Host, _hostSettings.VHost, _hostSettings.UserName, _hostSettings.Password));
Ответ 2
Вы проверили свои учетные данные. Имя пользователя и пароль по умолчанию - "гость" и "гость". Сообщение об ошибке не очень полезно. Вы получаете "Ни один из указанных конечных точек не был доступен", если также была ошибка проверки подлинности