1

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) がエラー キューにあります。

4

1 に答える 1

0

Log4NetまたはNLog統合をセットアップして、MassTransitで何が起こっているかを確認してみてください。彼らは多くの有用なトラブルシューティング情報を記録するという素晴らしい仕事をしました。

于 2013-01-02T19:45:00.343 に答える