2010-04-01 13 views
12

Próbuję skonfigurować mapowanie punktów końcowych komunikatów w konfiguracji NServiceBus, wysyłając wiadomości z różnych przestrzeni nazw do różnych punktów końcowych.Jak skonfigurować funkcję MessageEndpointMapping według przestrzeni nazw w programie NServiceBus

Jako takie, mam skonfigurowane następujących w moim 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> 

Jednak, gdy moi uruchamiania aplikacji, pojawia się następujący wyjątek:

Spring.Objects.PropertyAccessExceptionsException: PropertyAccessExceptionsException (1 błędy); Zagnieżdżone PropertyAccessExceptions są następujące: [Spring.Core.TypeMismatchException: Nie można przekonwertować wartości właściwości typu [System.Collections.Hashtable] na wymagany typ [System.Collections.IDictionary] dla właściwości "MessageOwners"., Wewnętrzny wyjątek: System.ArgumentException: Problem ładowanie zestawu wiadomości: Company.Messages.Paymenty ---> System.IO.FileNotFoundException: Nie można załadować pliku lub zespołu "Company.Messages.Payments" lub jednej z jego zależności. System nie może odnaleźć określonego pliku. Nazwa pliku: "Company.Messages.Paymenty"

To, co uważam za interesujące, to że znalazłem Company.Messages.Accounts, ale nie udało się na drugiej skonfigurowanej linii. Pomyślałem, że może nie było tak, jakby wszyscy jechali do tego samego punktu końcowego, ale zmiana tej konfiguracji tak, aby powodowała różne punkty końcowe, nie zmieniła komunikatu o błędzie, który otrzymałem.

Co robię źle? Czy nie jest możliwe segmentowanie wiadomości według przestrzeni nazw (wszystko, co widziałem, to typ i złożenie)?

Dzięki Steve

Odpowiedz

14

NSB obsługuje tylko mapowanie zespołów lub poszczególnych typów do punktów końcowych. Przestrzenie nazw nie są obsługiwane, sugeruję podzielenie zestawu wiadomości na osobne zestawy dla każdego z punktów końcowych.

+0

Dzięki Andreas. Ktoś na liście e-mailowej NServiceBus zasugerował, że było to możliwe, ale nie mogłem go uruchomić. Dzięki za ostateczną odpowiedź. ~ Steve – SteveBering

+0

Czy to wciąż aktualne? Nie sądzę, że jest ... –

+3

3.3.0 dodano obsługę przestrzeni nazw również –

5

Według tej stronie można określić typ: http://docs.particular.net/nservicebus/messaging/message-owner

Poszczególne typy mogą być konfigurowane za pomocą ich kwalifikowaną nazwę: „namespace.type, montaż”.

+0

Świetny do włączenia linku. Nigdy nie czytałem w pubie przykładowego przykładu, ponieważ nie potrzebowałem go jeszcze, jednak nie widziałem tego małego tid-bitu gdziekolwiek indziej w dokumentach. – etropic

0

Od NServiceBus nazw v3.3 może być używane do filtrowania mapowania wiadomość

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

+0

Być może doco powinno również zwrócić uwagę, że NServiceBus (4.7 to wersja, której używam!) Również zawiedzie, jeśli dodaję rozszerzenie obrazu (* .dll w moim przypadku). Całkiem nieintuicyjny! – agAus

+0

Mamy notatkę tutaj: http://docs.particular.net/nservicebus/messaging/message-owner#2-resolving-the-messages-types-to-map-resolving- with-the-assembly Wszelkie pomysły na możemy to wyjaśnić? –

Powiązane problemy