2011-09-02 15 views
0

シミュレーション用にウェブサービスを複製したいと思います。主な考え方は、新しいサービスが既存のものと同じインターフェースを実装していることです。私は、構成を変更することなく、特定のテスト条件の下で要求を実際のアドレスまたはシミュレートされたアドレスにリダイレクトできるようにしたいと思います。これはWCFで達成することが可能ですか?WCF WebServiceレプリケーション

答えて

2
実際に既存のサービスには、メタデータ、つまりWSDLを公開した場合、その後、あなたは基本的に以下のようにして、サービスを再作成することができ、サービスを複製するという点で

:WSDLへ

  1. ブラウズをし、すべてのxsdのことwsdlはそれらをすべて参照してディスクに保存します。
  2. これらのファイルでは、wsdl.exeユーティリティを実行してwsdlとxsdを渡し、/ siオプションを使用してサービスインターフェイスを生成します。
  3. というの出力はインタフェースファイル(C#のファイル)
  4. のVisual Studioに入ることと、「WCFサービスアプリケーション」の新規プロジェクトを作成します
  5. に最初のサービス1(およびインターフェイス)ファイルとクラスの名前を変更しますあなたの新しいサービスとインターフェイスの名前。
  6. 上記で生成されたインターフェイスコードをコピーして、新しいサービスのインターフェイスクラスファイルに貼り付けます。
  7. サービスクラスでは、必要な実装でサービスメソッドを実装します。 (ヒント:ファイル内のインターフェース名を右クリックすると、 "Implement Interface"オプションを使用してVSスタブがあなたのために用意されています - 素敵な機能です)
  8. ビルドすれば準備は整っています。

元のサービスと新しいサービスを切り替えるという点では、クライアント側のリファレンスから、別のサービスエンドポイントのコード(対config)を選択して、スイッチをヒットするように切り替えることができます1つのサービスまたは他のサービス...

0

面倒なことでしょう構成

を変更する必要はありません。

同一のインターフェイスを持つサービスを作成して、そのサービスで '実際の'サービスを呼び出すためのクライアントを実装することができます。

その後、あなたは何をしたいのですか?その後、同じ(または変更された)パラメータでリクエストを実際のサービスに転送します。

しかし、実際のサービスの代わりに、クライアントにサービスを指示する必要があります。おそらく、その部分はプロキシサーバーやDNSレコードを使用して回避することができます。

関連する問題