2011-12-22 70 views
1

我有一個WPF解決方案,還需要支持接收來自Queue1的消息並將消息發送到Queue2。我把這一切都設置好了,它在早期測試中找到了。如何處理多個NServiceBus項目?

但是當我結合輸入和輸出項目(所以我必須在輸出文件夾兩個項目組件)我得到以下錯誤:

Host doesn't support hosting of multiple endpoints. Endpoint classes found: MySolution.Queue1.EndpointConfig, MyProject.Queue1, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null,

MySolution.Queue2.EndpointConfig, MyProject.Queue2, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null You may have some old assemblies in your runtime directory.

Try right-clicking your VS project, and selecting 'Clean'.

我要對這個錯誤?我的WPF進程只能處理一個隊列嗎? (如果是這種情況,看起來不太健壯。)

也許我正在對此進行錯誤的處理。我應該只從同一隊列發送和接收嗎? (這是否甚至可以正常工作?一個隊列可以處理多個消息類型嗎?)

+0

「隊列能處理多種消息類型嗎?」 MSMQ的唯一類型限制是事務隊列中的事務消息和非事務性隊列中的非事務消息。 – 2011-12-22 22:48:22

+0

是NSB只允許您爲每個物理端點設置一個輸入隊列。你能否解釋這與健壯性有關? – 2011-12-23 09:31:47

回答

1

我看它的方式是每個進程正在運行的隊列。 (或者,如果您手動設置應用程序域,則更具體地說,應用程序域 - 除非您在頂架擱置下創建多個服務,否則您可能不會這樣做)。是的,同一個隊列可以處理不同類型的消息。每個匹配消息類型的處理程序都會被調用以接收消息。設置nservicebus查看隊列是流程本身的代碼/配置問題,而不是與處理程序等相關的程序集(可能在同一個程序集中有流程和處理程序)。只要待處理的消息被髮送到該隊列,您就只需要一個隊列。不知道這是否會回答您正在查找的內容,但這就是我如何看到您只需要一個應用程序域隊列的原因。