2016-05-31 11 views
0

XMLDOC状態:HandlerExtensions.ConnectHandle ConnectHandler <T>()メソッドの目的は何ですか?

メッセージ

の特定のタイプ を処理するためのサービス・バスにメッセージハンドラを追加します。しかし、それは、エンドポイントの名前を必要としません。それではどうですか?この方法を試しましたが、何も起こりませんでした。

バスが動作している間にハンドラを動的に追加する可能性はありますか?

+0

フルスタートハンドラはバス起動時に解析され、MTはサブスクリプションをサポートするためにトピックや交換などの必要なインフラストラクチャ要素を作成します。これはバスが始まるときにのみ起こります。 –

答えて

1

ハンドラを起動した後にハンドラをバスに接続すると、バスのアドレスにメッセージを直接送信できます。これは、要求への応答などの場合に特に便利です。要求は公開してはならず、エンドポイントにすぐに戻されます。

bus.ConnectHandler(context => {...})を使用してバスに動的にハンドラを追加すると、ブローカにサブスクリプションまたは交換バインディングは作成されません。エンドポイントに直接送信されるメッセージを受信することは可能です。

要求などのメッセージがバスから送信されると、SourceAddressがメッセージヘッダーに追加されます。要求が送信されると、ResponseAddressも設定されます。非動的エンドポイントを使用してフォルト(待機していない失敗したコマンド、IE、ファイアおよびフォールトなど)を使用して、別の永続エンドポイントによってフォールトをトリガーして適切に処理できるようにする場合は、フォルトアドレスを指定することもできます。

関連する問題