2012-01-04 4 views
8

私のApp.configにMessageEndpointMappingsセクションがあります。MessageEndpointMappingsはサブスクリプションと発信メッセージのセットアップをどのように知っていますか?

、それは別のキューにサブスクライブするクライアントの設定のように時にはそれが(この1つはありませんように)なります

<UnicastBusConfig> 
<MessageEndpointMappings>  
    <add Messages="MyServiceBus.MessageHub.Contracts" Endpoint="MessageHub"/> 
</MessageEndpointMappings> 
</UnicastBusConfig> 

しかし、他のキューへの送信メッセージを設定するために使用しているように見える他の回:

<UnicastBusConfig> 
<MessageEndpointMappings>  
    <add Messages="ServiceBus.MessageHub.InternalMessages" Endpoint="MessageHub"/> 
</MessageEndpointMappings> 
</UnicastBusConfig> 

実際には、2つの間に違いはありません。 サブスクリプションをいつセットアップするのか、メッセージを送信するセットアップをいつ行うのかはどのように分かりますか?

これは本当にいつも両方をやっていますか?私は両方を使用していませんか?

答えて

19

MessageEndpointMappings要素で宣言しているのは、 "指定したメッセージのオーナーは誰ですか?"それを表示する

別の方法として、これはサービスの依存関係の方向であるということである - それは、メッセージがSendトンまたはPublish Dを取得するかどうかによって決定されているので、ないメッセージフロー。

したがって、メッセージを送信して特定のサービスからメッセージを購読できるようにするには、送信者/サブスクライバのエンドポイントにエンドポイントマッピングを宣言します。

と送信者/加入者が別のサービスとそのエンドポイントマッピングに含まれるメッセージのハンドラを指すエンドポイントのマッピングを持っているときに、無効にしない限り、その後、NServiceBusは(自動的にそのメッセージをサブスクライブするのに十分素敵です自動購読DoNotAutoSubscribe()) - 論理的には、送信者/購読者が所定のメッセージを購読することを意味する必要があるためです。

このように考えると、意味があると思います。あなたもそうだと思っていますか?

関連する問題