私がやろうとしていること、および関連する環境/状況の説明から始めます。
.NET 4 を使用して実装した既存の WCF サービス (Windows サービスとしてホストされている) を使用しています。このサービスは、net.tcp と信頼できるセッション、およびクライアント アプリケーションへのコールバックを利用します。WCF サービスとクライアント アプリケーションは、同じネットワーク ドメイン (Domain_A と呼びます) で動作し、適切に動作します。
既存:
(Client [Domain_A]:) ---[request]--> (WCF Svc [Domain_A])
(Client [Domain_A]:)<--[callback]--- (WCF Svc [Domain_A])
私が実装しようとしている新しい機能は、(WCF 4 を介した) ルーティング サービスの機能です。Domain_B でも実行される Domain_A で実行される WCF サービスの同一のコピーがあります。net.tcp および mex エンドポイントに必要なポートは、各ドメインの 2 台のコンピューター間で開かれ、反対側のドメインから各サービスのメタデータに正常にアクセスできます。
私が確信が持てないのは、サービス要求のルーティングに関する限り、どのルートを (アーキテクチャ的に) 取るべきかということです。クライアントによって行われた特定の要求は、Domain_A のサービスのみが応答でき、その他の要求は Domain_B のサービスのみが応答できます。宛先サービスは、各サービス呼び出しで (クライアントから) 渡されるパラメーターによって決定されます (または決定される可能性があります)。また、クライアント アプリケーションは Domain_A からのみ実行されます。
必要な機能:
(Client [Domain_A]:) ---[request]-->(Routing Svc [Domain_A]) ---[request]-->( (WCF Svc [Domain_A]) OR (WCF Svc [Domain_B]) )
(Client [Domain_A]:) <--[callback]--- (Routing Svc [Domain_A])<--[callback]--- ( (WCF Svc [Domain_A]) OR (WCF Svc [Domain_B]) )
私の最初の質問: ルーティングに関する限り、上記の「必要な機能」を実装するための最良のルートは何ですか (フィルタリング戦略、エンドポイント/コントラクトの種類など)? 私はルーティング サービスに不慣れで、私の要件に合った明確で簡潔な回答や例を見つけることができませんでした。
2 番目の質問: フィルタリングの質問に加えて、信頼できるセッションとコールバックを使用する WCF4 ルーティング サービスの例を教えてください。IDuplexSessionRouter について簡単に言及する以外に、多くのことを見つけることができないようです。IDuplexSessionRouter エンドポイントが最適な方法である場合、コールバックを実装する例を見つけることができませんでした。
ヘルプや情報をお寄せいただきありがとうございます。上記のことを明確にする必要がある場合はお知らせください。