2012-07-29 56 views
0

好的,請原諒我,如果我的理解/術語有點奇怪 - 我仍然在處理NSB和MSMQ之間的相互作用。如何在不重新啓動發佈者的情況下取消訂閱NServiceBus中的隊列?

今天早些時候,我不小心使用生產配置文件解僱了我們的用戶的web應用程序我的工作站上。這意味着我的工作站會在我們的製作發佈商應用中註冊。我現在無法弄清楚如何讓發佈者停止向我的工作站發佈消息,而不是重新啓動發佈服務 - 由於它是一個生產系統,這會很糟糕。

展望在發佈主機系統上的隊列管理器,我可以看到在計算機管理專用隊列 - >服務和應用程序 - >消息隊列 - >發送隊列:

DIRECT=OS:DYLAN_PC\private$\DylanApplicationInputQueue 

,但我不能請參閱任何刪除隊列或刪除訂閱的機制。即使已經替換了本地用戶應用程序的配置,現在當我啓動本地用戶時,來自我們生產環境的消息也出現在隊列中。這使得做任何有用的工作有點棘手。任何指向相關位的文檔的指針將不勝感激...

+0

什麼樣的訂閱存儲的做你的配置,你出版商?它使用MSMQ訂閱存儲嗎?您應該能夠在發佈商中看到端點配置。如果您可以使用它編輯問題將會很有用 – Almond 2012-07-30 21:51:16

回答

1

以前沒有處理NServiceBus我自己,但一些挖掘文檔指出,從您的客戶端配置中刪除您的訂閱是無關緊要的,是你已經訂閱了,所以發佈商只是在你再次出現的時候發送內容!

兩個選項看起來也許工作,根據您的設置:

  1. 回到出版商配置,添加一個調用Bus.Unsubscribe早期。然後運行一次你的客戶端,讓它取消訂閱,然後你可以回到使用適當的本地配置。
  2. 從實際存儲的任何地方刪除隊列訂閱,我認爲這與隊列本身是分開的。如果您使用的是SQL Server 2008,nservicebus deleting subscription record after inserting it?可能有助於指導(呃,做他們不希望發生的事情,即取消訂閱)。這可能會有點多毛,這取決於NServiceBus在數據庫中具有哪些相關的東西,以及它重新讀取v.s.的頻率。假設它的緩存是好的,但是。
相關問題