2015-04-23 2 views
0

У меня проблема, когда NServiceBus автоматически не создает все очереди.NServiceBus не создает очереди RabbitMQ

Если я запустил любую из конечных точек (за исключением веб-клиента mvc), я получаю следующую ошибку. (Конечные точки были получены с использованием ServiceMatrix)

2015-04-23 10: 50: 12,241 ОШИБКА NServiceBus Эта конечная точка не может контакта ServiceControl Backend, чтобы сообщить сведения о конечной точке. У вас есть плагины для плагина ServiceCont, установленные в вашей конечной точке. Тем не менее, убедитесь, что служба Particul ar ServiceControl установлена ​​на этом компьютере или если запущена служба ServiceCon trol на , то убедитесь, что atfig для вашей конечной точки app.config/web.c onfig, AppSettings имеет следующий набор ключей Соответственно: ServiceControl/Queue. Например: Дополнительные детали: {0} NServiceBus.Unicast.Queuing.QueueNotFoundException: Обмен для получателя д OES не существует ---> RabbitMQ.Client.Exceptions.AlreadyClosedException: Уже кл osed: AMQP операция была прервана : AMQP close-reason, инициированный Peer, code = 404, text = "NOT_FOUND - no exchange 'specific.servicecontrol' in vhost '/'", classId = 60, methodId = 40, cause = at RabbitMQ.Client .Impl.ModelBase.WaitForConfirms (TimeSpan тайм-аут, Boolean & timedOut) ...

Так что похоже particular.servicecontrol является не создается. Однако остальные очереди действительно созданы.

Если я запускаю веб-проект, я также получаю исключение: {«Не удается получить доступ к удаленному объекту. \ R \ nОбъект:« CommonObjectBuilder ».»}. Эта ошибка возникает в «Bus.Create (config)», и никакие очереди не создаются.

if (Debugger.IsAttached) 
{ 

    config.UsePersistence<InMemoryPersistence>(); 

    config.EnableInstallers(); 
} 

var bus = Bus.Create(config); 

Если я постоянно добавляю special.servicecontrol в очереди, все ошибки исчезают.

+0

Не могли бы вы продумать - вы установили ServiceControl и установили его для использования RabbitMQ, но он не создал свою собственную очередь? Вы вообще можете запустить ServiceControl? –

ответ

0

Итак, в конце концов, в основном моя ошибка не обновляла мой ServiceControl для использования RabbitMQ.

NServiceBus не сработает с правильными сообщениями об ошибках, когда это произойдет. По сути, ServiceControl отвечает за создание особой очереди.servicecontrol, и когда эта очередь отсутствует, все ад прорываются в самой шине.

Однако это было не так просто, как описано в документе Multi Transport installation documentation. Короче говоря, в то время как NSB5 работает с RabbitMQ v2.1.2 (последняя стабильная), двоичный код ServiceControl требует v1.1.5. Один поэтому должен скопировать двоичные файлы из "RabbitMQ.Client v3.2.1" и "RabbitMQ v2.1.2" пакеты NuGet в "C: \ Program Files (x86) \ Особенное Software \ ServiceControl" еще один получает

Не удалось сконфигурировать транспорт. Не удалось разрешить тип 'NServiceBus.RabbitMQ, NServiceBus.Transports.RabbitMQ' из настройки 'TransportType'. Убедитесь, что узел присутствует и что тип правильно определен в настройках

при запуске установки для RabbitMQ для ServiceControl.

Я нашел решение here.

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