Rhino ESB опубликовать / подписаться на бэкэнд

У меня есть 2 приложения, настольное приложение, которое используют клиенты, Win Service, который выполняет бэкэнд-обработку. Я хочу иметь возможность запустить обработку бэкэнда через сообщение, используя Rhino Service Bus. Это сообщение может исходить от клиентского приложения, оно может исходить от службы win, мне все равно, кто его запускает. Так что мне нужен паб саб. Проблема в том, что я могу просто запустить его из своего консольного приложения, когда я пытаюсь выполнить запуск из своего сервиса, я получаю сообщение об ошибке, что для сообщения нет подписчиков. Что не так в моих конфигах?

Консольное приложение.config

<rhino.esb>
<bus threadCount="1" numberOfRetries="5" endpoint="msmq://localhost/console.debug" />
<messages>
  <add name="MyMessages" endpoint="msmq://localhost/host.debug" />
</messages>

Win Service app.config

<rhino.esb>
<bus threadCount="1" numberOfRetries="5" endpoint="msmq://localhost/host.debug" />
<messages />

Код для отправки сообщения одинаков в обоих приложениях:

private IServiceBus _serviceBus;
....
public void Trigger()
{
    _serviceBus.Publish(new myTriggerCommand()); 
}

1 ответ

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

http://blog.irm.se/blogs/eric/archive/2011/06/19/Consuming-Events-in-the-Same-Process-as-the-Publisher-with-Rhino-Service-Bus.aspx

Другие вопросы по тегам