0


,我在我的项目中使用 NServiceBus 1.9 RTM。
我正在使用发布者 - 分发者 - 订阅者模型。
在订阅者中,我使用以下代码订阅

 var bus = NServiceBus.Configure.With()
                .SpringBuilder()                    
                    .XmlSerializer()
                .MsmqTransport()
                    .IsTransactional(false)
                    .PurgeOnStartup(false)
                .UnicastBus()
                    .ImpersonateSender(false)
                    .DoNotAutoSubscribe()
                    .LoadMessageHandlers()
                .CreateBus()
                .Start();
                bus.Subscribe<ITestMessage>();
                _isSubscribed = true;
                log.Info(" ITestMessage Subscribed successfully..");
                _serviceBus = bus;

当我想取消订阅时,我正在做

_serviceBus.Unsubscribe<ITestMessage>();

但它不是取消订阅,也不是抛出任何错误。在取消订阅后,EventHandler 仍然接收来自分发者的消息。

有什么我想念的吗...?任何人都可以帮助我。


nRk

4

1 回答 1

1

您需要了解,取消订阅不是您对发行商的行为,而是对出版商的行为。现在,可能是您没有在 MessageEndpointMappings 中为 ITestMessage 的发布者配置正确的端点,这就是取消订阅不起作用的原因。订阅很可能也不起作用,但这被您正确配置分发器的事实所掩盖,并且其他人已告诉发布者订阅 ITestMessage 的分发者。

希望有帮助。

于 2010-07-06T20:24:17.440 回答