Wcf-consuming-service

提供:Dev Guides
移動先:案内検索

WCF-WCFサービスの利用

WCFサービスにより、他のアプリケーションがそれらにアクセスしたり消費したりできます。 WCFサービスは、ホスティングの種類に応じてさまざまな方法で利用できます。 ここでは、次の一般的なホスティングオプションごとにWCFサービスを使用するための段階的な方法を説明しています-

  • IIS 5/6でホストされるWCFサービスを利用する
  • 自己ホスト型のWCFサービスを使用する
  • Windows Activation ServiceでホストされているWCFサービスの使用
  • WindowsサービスでホストされるWCFサービスを使用する

IIS 5/6でホストされているWCFサービスの使用

IIS 5/6でホストされているWCFサービスの消費プロセスについては、以下で詳しく説明します。 さらに、議論には、プロキシおよびコンソールアプリケーションの作成方法が含まれます。

  • ステップ1 *-IISでサービスをホストしたら、クライアントアプリケーションで使用する必要があります。 クライアントアプリケーションを作成する前に、サービスのプロキシを作成する必要があります。 このプロキシは、クライアントアプリケーションがサービスと対話するために使用されます。 プロキシを作成するには、Visual Studio 2008コマンドプロンプトを実行します。 サービスユーティリティを使用して、プロキシクラスとその構成情報を作成できます。

svcutilhttp://localhost/IISHostedService/Service.svc

Wcf Consuming Services IIS 1

このコマンドを実行すると、2つのファイルがデフォルトの場所に生成されます。

  • MyService.cs -WCFサービスのプロキシクラス
  • output.config -サービスに関する構成情報
  • ステップ2 *-次に、Visual Studio 2008(クライアントアプリケーション)を使用してコンソールアプリケーションの作成を開始します。

Wcf Consuming Services IIS 2

  • ステップ3 *-参照「System.ServiceModel」を追加します。これは、WCFのコアdllです。
  • ステップ4 *-プロキシクラスを作成します。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace MyServiceClient {
   Class Program {
      Static void Main(string[] args) {
        //Creating Proxy for the MyService
         ServiceClient Client = newServiceClient();
         Console.WriteLine("Client calling the service...");
         Console.WriteLine("Hello Ram");
         Console.Read();
      }
   }
}

出力は次のように表示されます-

Wcf Consuming Services IIS 4

セルフホストWCFサービスの使用

ここでは、自己ホスト型のWCFサービスを利用するプロセス全体を、必要に応じて十分なコーディングとスクリーンショットとともに段階的に説明します。

  • ステップ1 *-サービスがホストされています。クライアントのプロキシクラスを実装する必要があります。 プロキシを作成する方法はいくつかあります。
  • SvcUtil.exeを使用して、エンドポイントを持つプロキシクラスとその構成ファイルを作成できます。
  • クライアントアプリケーションにサービス参照を追加します。
  • ClientBase <T>クラスの実装

これら3つの方法のうち、ClientBase <T>を実装することがベストプラクティスです。 他の2つのメソッドを使用している場合、サービス実装に変更を加えるたびにプロキシクラスを作成する必要があります。 しかし、これはClientBase <T>の場合ではありません。 実行時にのみプロキシを作成するため、すべてを処理します。

この目的のために、System.ServiceModelおよびMyCalculatorServiceの参照を含む1つのプロキシクラスを作成します。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ServiceModel;
using MyCalculatorService;

namespace MyCalculatorServiceProxy {
  //WCF create proxy for ISimpleCalculator using ClientBase
   Public class MyCalculatorServiceProxy :
   ClientBase<ISimpleCalculator>,

   ISimpleCalculator {
      Public int Add(int num1, int num2) {
        //Call base to do funtion
         returnbase.Channel.Add(num1, num2);
      }
   }
}

次に、System.ServiceModelとMyCalculatorServiceProxyの参照を含む1つのコンソールアプリケーションを作成します。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ServiceModel;
using MyCalculatorServiceProxy;

namespace MyCalculatorServiceClient {
   classProgram {
      Static void Main(string[] args) {
         MyCalculatorServiceProxy.MyCalculatorServiceProxy proxy = newMyCalculatorServiceProxy.MyCalculatorServiceProxy();

         Console.WriteLine("Client is running at " + DateTime.Now.ToString());
         Console.WriteLine("Sum of two numbers. 5 + 5 =" + proxy.Add(5,5));
         Console.ReadLine();
      }
   }
}
  • ステップ2 *-エンドポイント(サービスと同じ)情報をクライアントアプリケーションの構成ファイルに追加する必要があります。
<?xmlversion = "1.0"encoding = "utf-8" ?>
<configuration>
   <system.serviceModel>
      <client>
         <endpoint address
            ="http://localhost:8090/MyCalculatorServiceProxy/ISimpleCalculator"
            binding = "wsHttpBinding" contract "MyCalculatorServiceProxy.ISimpleCalculator">
            </endpoint>
      </client>
   </system.serviceModel>
</configuration>
  • ステップ3 *-クライアントアプリケーションを実行する前に、サービスを実行する必要があります。 以下に、クライアントアプリケーションの出力を示します。

Wcf Consuming Services Self 3

WASでホストされているWCFサービスの使用

WASでホストされているWCFサービスを利用することは、わずかな手順を含む簡単なプロセスです。 手順は次のとおりです-

  • クライアントアプリケーションにプロキシクラスと構成ファイルを追加します。
  • MathServiceClientのオブジェクトを作成し、メソッドを呼び出します。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespaceWASHostedClient {
   classProgram {
      staticvoid Main(string[] args) {
         MathServiceClient client = newMathServiceClient();
         Console.WriteLine("Sum of two number 5,6");
         Console.WriteLine(client.Add(5, 6));
         Console.ReadLine();
      }
   }
}

出力は次のように表示されます。

Wcf Consuming Services WAS 2

WindowsサービスでホストされているWCFサービスの使用

WindowsサービスでホストされているWCFサービスを使用する方法の段階的なプロセスを、コーディングと手順とともに詳細に説明します。

正常にホストされると、サービスのプロキシクラスを作成し、クライアントアプリケーションで使用を開始できます。 ここでは、IISホスティングタイプを使用する場合を示しています。

Wcf Consuming Services Windows Service 1

ServiceModelの参照を追加します。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespaceWindowServiceClient {
   classProgram {
      staticvoid Main(string[] args) {
        //Creating Proxy for the MyService
         MyServiceClient client = newMyServiceClient();
         Console.WriteLine("Client calling the service...");
         Console.WriteLine("Sum of two numbers 5,6");
         Console.WriteLine(client.Add(5, 6));

         Console.WriteLine("Subtraction of two numbers 6,5");
         Console.WriteLine(client.Sub(6, 5));

         Console.WriteLine("Multiplication of two numbers 6,5");
         Console.WriteLine(client.Mul(6, 5));

         Console.WriteLine("Division of two numbers 6,3");
         Console.WriteLine(client.Div(6, 3));
         Console.Read();
      }
   }
}

出力は次のように表示されます-

Wcf Consuming Services Windows Service 3