Подтвердить что ты не робот

Как настроить MessageEndpointMapping по пространству имен в NServiceBus

Я пытаюсь настроить отображение конечной точки моего сообщения в моей конфигурации 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: Невозможно преобразовать значение свойства type [System.Collections.Hashtable] в требуемый тип [System.Collections.IDictionary] для свойства MessageOwners., Внутреннее исключение: System.ArgumentException: проблема загрузки сборки сообщения: Company.Messages.Payments --- > System.IO.FileNotFoundException: Не удалось загрузить файл или сборку "Company.Messages.Payments" или одну из ее зависимостей. Система не может найти указанный файл. Имя файла: 'Company.Messages.Payments'

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

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

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

4b9b3361

Ответ 1

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

Ответ 2

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

Конкретные типы могут быть настроены с использованием их квалифицированного имени: "namespace.type, assembly".