NServiceBus:当使用2个用户时,2个消息最终都在两个队列中

时间:2012-10-05 12:45:54

标签: nservicebus

我是使用NServiceBus的新手,所以我很确定我只是搞砸了我的pub / sub功能的配置......

我有2个订阅者(A& B)设置来处理同一事件。我正在使用MSMQ进行邮件存储。如果我对B的处理程序进行注释并且只订阅A,那么A的处理程序只被调用一次(并且只有一条消息在A的队列中)。

但是,当我取消注释B订阅者中的处理程序以处理相同的事件时。两个A& 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());
    }

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:1)

事实证明这是对ninject的误用。我也在我的解决方案中使用EventStore,所以当我在第一个实例完成提交之前注入第二个EventStore实例时,它重新发布了未提交的第一个事件。