2010-04-01 59 views
12

我試圖通過從不同名稱空間向不同端點發送消息來配置我的NServiceBus配置中的消息端點映射。如何通過NServiceBus中的名稱空間配置MessageEndpointMapping

因此,我已經配置在我的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]的屬性值轉換爲屬性'MessageOwners'所需的類型[System.Collections.IDictionary]。,內部異常:System.ArgumentException:Problem加載消息組件:Company.Messages.Payments ---> System.IO.FileNotFoundException:無法加載文件或程序集「Company.Messages.Payments」或其某個依賴項。該系統找不到指定的文件。 文件名:'Company.Messages.Payments'

我覺得有趣的是它似乎找到了Company.Messages.Accounts,但在第二個配置的行上失敗。我想也許它不喜歡讓它們全部進入同一個端點,但改變這個配置讓它們走不同的端點並不會改變我收到的錯誤信息。

我在做什麼錯?是不可能通過名稱空間來分段消息(我所看到的全部是按類型和彙編)?

謝謝, 史蒂夫

回答

14

NSB僅支持組件或個別類型到端點的映射。命名空間不受支持,我建議你將消息組合件拆分爲每個端點的獨立程序集。

+0

由於安德烈亞斯。 NServiceBus電子郵件列表中的某個人表示這是可能的,但我似乎無法使其工作。感謝您的明確答案。 〜史蒂夫 – SteveBering 2010-04-02 14:24:57

+0

這仍然是最新的?我不認爲這是... – 2012-12-27 23:07:23

+3

3.3.0增加了對名稱空間的支持以及 – 2012-12-28 15:06:29

5

根據這個頁面,您可以指定類型: http://docs.particular.net/nservicebus/messaging/message-owner

具體類型可以通過使用他們的標準名稱進行配置:「namespace.type,組裝」。

+0

偉大的包括鏈接。我從來沒有讀過酒吧子例子,因爲我不需要它,但是我沒有在文檔的其他任何地方看到過這個小點子。 – etropic 2012-09-28 01:13:48

0

作爲NServiceBus V3.3命名空間可被用來過濾消息映射

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

+0

也許doco也應該指出,NServiceBus(4.7是我使用的版本!)也會失敗,如果我添加圖像擴展名(* .dll在我的情況下)。非常直觀! – agAus 2015-10-14 23:49:25

+0

我們在這裏有註釋:http://docs.particular.net/nservicebus/messaging/message-owner#2-resolving-the-messages-types-to-map-resolving-with-the-assembly任何想法都有我們可以更清楚一點嗎? – 2015-10-15 08:02:00

相關問題