2012-10-05 72 views
2

我是使用NServiceBus的新手,所以我很確定我只是搞砸了我的發佈/訂閱功能的配置...NServiceBus:當使用2個訂閱者時,2條消息最終在兩個隊列中

我有兩個用戶(A & B)設置處理同一事件。我正在使用MSMQ進行消息存儲。如果我評論B的處理程序並且只訂閱A,那麼A的處理程序只被調用一次(並且A的隊列中只有1條消息)。

但是,當我取消註釋在B用戶處理程序處理相同的事件。 B& B在隊列中獲得兩條相同的確切消息,這會導致每個處理程序運行兩次。

我正在使用NServiceBus 3.2.0.0,每個事件訂閱者都在單獨的項目中,並在其自己的NServiceBus主機中運行。

這裏是我的公交車設置...

private IBus CreateBus() 
    { 
     return Configure.With() 
      .NinjectBuilder(this.Kernel) 
      .Log4Net() 
      .MsmqTransport() 
      .PurgeOnStartup(true) 
      .UnicastBus() 
      .LoadMessageHandlers() 
      .CreateBus() 
      .Start(() => Configure.Instance.ForInstallationOn<NServiceBus.Installation.Environments.Windows>().Install()); 
    } 

任何幫助,將不勝感激。

+0

Ninject之前與NServiceBus有問題:http://tech.groups.yahoo.com/group/nservicebus/message/6253不確定是否仍然有關係。也許嘗試另一個對象構建器提供者。 – eulerfx

+0

請提供您的發佈者的配置。 –

+0

我的猜測是你在每個訂閱者中都有處理程序,這是真的嗎? –

回答

1

原來是ninject的濫用。我也在使用我的解決方案中的EventStore,所以當我在第一個實例完成提交之前注入第二個EventStore實例時,它重新發布了未提交的第一個事件。

相關問題