複数のコントラクト

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

Note

このサンプルのセットアップ手順とビルド手順については、このトピックの最後を参照してください。

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

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

<service
    name="Microsoft.ServiceModel.Samples.CalculatorService"
    behaviorConfiguration="CalculatorServiceBehavior">
  <!-- ICalculator endpoint is exposed using BasicBinding at the base
       address provided by host:
       http://localhost/servicemodelsamples/service.svc  -->
  <endpoint address=""
            binding="basicHttpBinding"
            contract="Microsoft.ServiceModel.Samples.ICalculator" />
  <!-- ICalculatorSession endpoint is exposed using BindingWithSession
       at {baseaddress}/session:
       http://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 版をビルドするには、「 Building the Windows Communication Foundation Samples」の手順に従います。

  3. 単一または複数コンピューター構成でサンプルを実行するには、「Windows Communication Foundation サンプルの実行」の手順に従います。