7

多数の内部 Web サービス (WCF および ASMX) のプロキシとして機能する必要がある WCF ルーターを構築しています。ルーティング部分は非常に簡単ですが、このソリューションでサービス メタデータ交換がどのように機能するのか理解できません。

つまり、クライアントはルーターの背後にある内部サービスのメタデータをどのように取得するのでしょうか? コンシューマーに WSDL ファイルを手動で提供する必要がありますか? 適切な内部サービスのメタデータを返すようにルーターを設定できますか?

それとも、私のアーキテクチャが完全に間違っているのでしょうか?

4

3 に答える 3

4

ここに 2 つのオプションがあります。

  1. 内部アドレスを公開したくない場合は、「非透過」プロキシを作成するオプションがあります。利点は、メッセージをルーティングするだけでなく、それ以上のことができることです (つまり、このようなプロキシは「セキュリティ境界」として機能し、暗号化されたメッセージをアンラップして内部エンドポイントにプレーンに渡すことができます)。また、同じデータ型/メッセージ XML 構造を使用して WCF サービスを単純​​な SOAP として公開し、「相互運用可能なレベル」を提供することもできます。欠点は、プロキシされたサービスとともにそのコードを更新する必要があることです
  2. WSDL リライタを実装できます。これを使用すると、内部サービス URL をオンザフライでマスクできます。条件によっては、単純な文字列置換で十分な場合と不十分な場合があります。

参照する:

于 2012-11-12T12:07:41.000 に答える
0

代わりに単純な HTTP プロキシを使用することを検討しましたか? REST または SOAP を使用するすべての WCF は、コア HTTP 要求にあります。ルーティング機能 (ホスト名、URL パス、またはパラメーターに基づいていると想定しています) は、内容を理解する必要なく HTTP 要求をプロキシすることで実行できるようです。ASP.Net は、着信要求を独自にサニタイズするのにかなり適切に機能しますが、必要に応じてカスタム フィルタリングをいつでも追加できます。

于 2012-11-13T01:03:53.107 に答える