複数のコントラクト
この複数のコントラクトのサンプルでは、複数のコントラクトを 1 つのサービスに実装する方法と、実装された各コントラクトと通信を行うためにエンドポイントを構成する方法を示します。このサンプルは、「入門サンプル」に基づいています。サービスは、ICalculator
コントラクトおよび ICalculatorSession
コントラクトという、2 つのコントラクトを定義するように変更されています。
メモ : |
---|
このサンプルのセットアップ手順とビルド手順については、このトピックの最後を参照してください。 |
サービス クラスは、ICalculator
と ICalculatorSession
コントラクトの両方を実装しています。いずれかのコントラクトでセッションが必要なので、サービスは 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) によってホストされます。
クライアント コンソール ウィンドウには、最初に基本のエンドポイント、次にセキュリティで保護されたエンドポイントの順に、各エンドポイントに送信された操作が表示されます。
サンプルを設定、ビルド、および実行するには
「Windows Communication Foundation サンプルの 1 回限りのセットアップの手順」が実行済みであることを確認します。
ソリューションの C# 版または Visual Basic .NET 版をビルドするには、「Windows Communication Foundation サンプルのビルド」の手順に従います。
単一コンピュータ構成か複数コンピュータ構成かに応じて、「Windows Communication Foundation サンプルの実行」の手順に従います。
Copyright © 2007 by Microsoft Corporation.All rights reserved.