2013-08-05 19 views
1

我已創建新隊列並在訂閱服務器配置文件中傳遞隊列名稱。之前更改隊列名稱與名字創建新的隊列後創建新隊列並在訂閱服務器端傳遞隊列名稱,發佈服務器在發佈時出錯(NService總線)

<MsmqTransportConfig InputQueue="BreQueue" ErrorQueue="ErrorQueue" NumberOfWorkerThreads="1" MaxRetries="5"/> 

「IndusBreQueue」我已經通過了類似以下的隊列名稱中刪除舊的隊列即「BreQeue」。

<MsmqTransportConfig InputQueue="IndusBreQueue" ErrorQueue="ErrorQueue" NumberOfWorkerThreads="1" MaxRetries="5"/> 

現在,當出版商嘗試發佈它拋出錯誤

目標隊列「BreQeue @ APPINFOSERVER1」找不到該消息。您可能在配置文件中的UnicastBusConfig部分的MessageEndpointMappings中錯誤配置了此類消息的目標(ComEventMessage.Com_EventMessage)。也可能是給定的隊列尚未創建或已被刪除。

作爲發佈者的Web應用程序和作爲訂閱者的應用程序。在這兩個應用程序中都有使用常見的消息dll「ComEventMessage」作爲參考。

當我已經創建了新的隊列,並且在訂閱者端的配置部分也被傳遞了,那麼爲什麼它在發佈消息時在發佈者端給出了這樣的錯誤? 又一個混淆,如果你不刪除舊的隊列,即「BreQeue」,它的工作原理沒有錯誤。我的意思是發佈者發佈消息而不會拋出上述錯誤。

在此先感謝您的幫助。

回答

0

您還需要更新訂閱存儲。
如果您使用的是RavenDB,則需要查找訂閱文檔並使用新名稱進行更新。
enter image description here

如果您使用NH,則更新表格行。

如果您使用的是舊版本的NServiceBus,則很可能將MSMQ設置爲您的訂閱存儲。您應該清除「訂閱」隊列中的所有消息,然後重新啓動解決方案。

+0

嗨約翰西蒙斯感謝您的時間。我沒有使用Raven DB。我怎麼能做到這一點。我是否需要創建新的訂閱以及您的意思? – Vijay

+0

嗨Udi Dahan我已經清除訂閱隊列中的所有消息,但仍面臨同樣的問題。 – Vijay

相關問題