次の方法で共有


複数のコントラクト

この複数のコントラクトのサンプルでは、複数のコントラクトを 1 つのサービスに実装する方法と、実装された各コントラクトと通信を行うためにエンドポイントを構成する方法を示します。このサンプルは、「入門サンプル」に基づいています。サービスは、ICalculator コントラクトおよび ICalculatorSession コントラクトという、2 つのコントラクトを定義するように変更されています。

ms751424.note(ja-jp,VS.100).gif注 :
このサンプルのセットアップ手順とビルド手順については、このトピックの最後を参照してください。

サービス クラスは、ICalculatorICalculatorSession コントラクトの両方を実装しています。いずれかのコントラクトでセッションが必要なので、サービスは PerSession インスタンス モードを使用して、セッションの有効期間中、状態を保持します。

サービス構成は、各コントラクトを公開する 2 つのエンドポイントを定義するように変更されています。ICalculator エンドポイントは、basicHttpBinding を使用してベース アドレスで公開されます。ICalculatorSession エンドポイントは、bindingConfiguration 属性が BindingWithSession に設定された wsHttpBinding を使用して、ベース アドレスまたはセッションで公開されます。次のサンプル構成を参照してください。

<service 
    name="Microsoft.ServiceModel.Samples.CalculatorService"
    behaviorConfiguration="CalculatorServiceBehavior">
  <!-- ICalculator endpoint is exposed using BasicBinding at the base
       address provided by host: 
       https://localhost/servicemodelsamples/service.svc  -->
  <endpoint address=""
            binding="basicHttpBinding"
            contract="Microsoft.ServiceModel.Samples.ICalculator" />
  <!-- ICalculatorSession endpoint is exposed using BindingWithSession
       at {baseaddress}/session:
       https://localhost/servicemodelsamples/service.svc/session -->
  <endpoint address="session"
            binding="wsHttpBinding"
            bindingConfiguration="BindingWithSession" 
           contract="Microsoft.ServiceModel.Samples.ICalculatorSession" />
  ...
</service>

生成されたクライアント コードには、元の ICalculator コントラクトと新しい ICalculatorSession コントラクトの両方のクライアント クラスが含まれます。クライアント構成とコードは、適切なサービス エンドポイントで各コントラクトと通信するように変更されています。

クライアントは Windows コンソール アプリケーション (.exe) です。サービスは、インターネット インフォメーション サービス (IIS) によってホストされます。

クライアント コンソール ウィンドウには、最初に基本のエンドポイント、次にセキュリティで保護されたエンドポイントの順に、各エンドポイントに送信された操作が表示されます。

サンプルを設定、ビルド、および実行するには

  1. Windows Communication Foundation サンプルの 1 回限りのセットアップの手順」が実行済みであることを確認します。

  2. ソリューションの C# 版または Visual Basic .NET 版をビルドするには、「Windows Communication Foundation サンプルのビルド」の手順に従います。

  3. 単一コンピューター構成か複数コンピューター構成かに応じて、「Running the Windows Communication Foundation Samples」の手順に従います。

ms751424.Important(ja-jp,VS.100).gif 注 :
サンプルは、既にコンピューターにインストールされている場合があります。続行する前に、次の (既定の) ディレクトリを確認してください。

<InstallDrive>:\WF_WCF_Samples

このディレクトリが存在しない場合は、「.NET Framework 4 向けの Windows Communication Foundation (WCF) および Windows Workflow Foundation (WF) のサンプル」にアクセスして、Windows Communication Foundation (WCF) および WF のサンプルをすべてダウンロードしてください。このサンプルは、次のディレクトリに格納されます。

<InstallDrive>:\WF_WCF_Samples\WCF\Basic\Services\MultipleContracts