Web サービスと Web サイト間の通信に MassTransit バージョン 2.7.0 を使用しています。Web サービスはメッセージを発行し、Web サイトはメッセージをサブスクライブします。
発行者サービス:
ServiceBus = ServiceBusFactory.New(sbc =>
{
sbc.UseMsmq();
sbc.VerifyMsmqConfiguration();
sbc.ReceiveFrom("msmq://localhost/publisher");
sbc.UseMulticastSubscriptionClient();
});
加入者のウェブサイト:
ServiceBus = ServiceBusFactory.New(sbc =>
{
sbc.UseMsmq();
sbc.VerifyMsmqConfiguration();
sbc.ReceiveFrom("msmq://localhost/website");
sbc.UseMulticastSubscriptionClient();
sbc.Subscribe(s =>
{
s.Handler<SomethingHappened>(HandleSomethingHappened);
});
});
私の開発マシンではすべて正常に動作しますが、ライブ サイトでは動作しません。メッセージは website_subscriptions MSMQ キューに表示されていますが、購読している Web サイトによって取得されていません。サーバーには複数の NIC があるため、それをサポートするためにレジストリ設定を追加しました。エラーなどは発生しません。キューからメッセージが取得されないだけです。
構成またはアクセス許可の問題がありませんか? なぜ機能しないのかを確認する方法はありますか?
[編集] website_subscriptions キューがフレームワークからのすべてのメッセージであることに気付きました: AddPeerMessage と AddPeerSubscriptionMessage。サービスからのすべてのメッセージ (上記の例では SomethingHappened) がエラー キューにあります。