2010-04-01 2 views
12

Я пытаюсь настроить отображение конечной точки моего сообщения в моей конфигурации NServiceBus, отправив сообщения из разных пространств имен в разные конечные точки.Как настроить MessageEndpointMapping по пространству имен в NServiceBus

Таким образом, я настроил следующее в моем web.config:

<MessageEndpointMappings> 
    <add Messages="Company.Messages.Accounts" Endpoint="ServiceInput" /> 
    <add Messages="Company.Messages.Payments" Endpoint="ServiceInput" /> 
    <add Messages="Company.Messages.Cancellations" Endpoint="ServiceInput" /> 
    <add Messages="Company.Messages.Notifications" Endpoint="ServiceInput" /> 
</MessageEndpointMappings> 

Однако, когда мой запуск приложения, я получаю следующее исключение:

Spring.Objects.PropertyAccessExceptionsException: PropertyAccessExceptionsException (1 ошибка); Вложенные свойства PropertyAccessExceptions: [Spring.Core.TypeMismatchException: Невозможно преобразовать значение свойства типа [System.Collections.Hashtable] в требуемый тип [System.Collections.IDictionary] для свойства MessageOwners., Внутреннее исключение: System.ArgumentException: Проблема loading message assembly: Company.Messages.Payments ---> System.IO.FileNotFoundException: Не удалось загрузить файл или сборку «Company.Messages.Payments» или одну из его зависимостей. Система не может найти указанный файл. Имя файла: 'Company.Messages.Payments'

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

Что я делаю неправильно? Невозможно ли сегментировать сообщения по пространству имен (все, что я видел по типу и по сборке)?

Спасибо, Стив

ответ

14

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

+0

Благодаря Andreas. Кто-то из списка рассылки NServiceBus предположил, что это возможно, но я не мог заставить его работать. Спасибо за окончательный ответ. ~ Steve – SteveBering

+0

Это все еще актуально? Я не думаю, что это ... –

+3

3.3.0 добавлена ​​поддержка пространств имен, а также –

5

Согласно этой странице вы можете задать тип: http://docs.particular.net/nservicebus/messaging/message-owner

Конкретные типы могут быть настроены с помощью их квалифицированное имя: «namespace.type, сборка».

+0

Отлично подходит для ссылки. Я никогда не читал подпункт pub, потому что мне он еще не нужен, однако я не видел ни одного другого документа в документах. – etropic

0

По состоянию NServiceBus V3.3 пространств имен может быть использован для фильтрации сообщений отображения

http://docs.particular.net/nservicebus/messaging/message-owner

+0

Возможно, в doco также следует указать, что NServiceBus (4.7 - это версия, которую я использую!) Также терпит неудачу, если я добавлю расширение изображения (* .dll в моем случае). Совершенно контр-интуитивно! – agAus

+0

У нас есть примечание здесь: http://docs.particular.net/nservicebus/messaging/message-owner#2-resolving-the-messages-types-to-map-resolving-with-the-борка Все идеи о мы можем сделать это более ясным? –

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