0

こんにちは
私は私のプロジェクトでNServiceBus1.9RTMを使用しています。
パブリッシャー-ディストリビューター-サブスクライバーモデルを使用しています。
サブスクライバーでは、次のコードを使用してサブスクライブしました

 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 に答える