NServiceBusを初めて使用するので、pub/sub機能の構成を台無しにしていると確信しています...
同じイベントを処理するために2つのサブスクライバー(AとB)を設定しました。メッセージの保存にMSMQを使用しています。Bのハンドラーにコメントを付け、Aのみをサブスクライブすると、Aのハンドラーは1回だけ呼び出されます(Aのキューには1つのメッセージのみが含まれます)。
ただし、Bサブスクライバーのハンドラーのコメントを解除すると、同じイベントを処理します。AとBの両方が、キューでまったく同じメッセージを2つ取得します。これにより、各ハンドラーが2回実行されます。
私はNServiceBus3.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());
}
どんな助けでもいただければ幸いです。