次の方法で共有


WS デュアル Http

デュアル Http サンプルでは、WSDualHttpBinding バインディングを構成する方法を示します。このサンプルは、クライアント コンソール プログラム (.exe) と、インターネット インフォメーション サービス (IIS) によってホストされるサービス ライブラリ (.dll) で構成されています。サービスは、双方向コントラクトを実装します。このコントラクトは ICalculatorDuplex インターフェイスによって定義されており、算術演算 (加算、減算、乗算、および 除算) を公開しています。このサンプルでは、ICalculatorDuplex インターフェイスを使用することにより、クライアントは算術演算を実行し、セッション経由で実行結果を計算できます。サービスは、ICalculatorDuplexCallback インターフェイスで結果を個別に返します。コンテキストを確立して、クライアントとサービスの間で送信される一連のメッセージを相互に関連付ける必要があるため、双方向コントラクトにはセッションが必要です。WSDualHttpBinding バインディングは双方向通信をサポートしています。

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

ms751522.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\Binding\WS\DualHttp

WSDualHttpBinding を使用してサービス エンドポイントを構成するには、次に示すように、エンドポイント構成でバインディングを指定します。

<endpoint address=""
         binding="wsDualHttpBinding"
         contract="Microsoft.ServiceModel.Samples.ICalculatorDuplex" />

クライアントで、サーバーがクライアントへの接続に使用するアドレスを構成する必要があります。次のサンプル構成を参照してください。

<system.serviceModel>
  <client>
    <endpoint address=
         "https://localhost/servicemodelsamples/service.svc" 
         binding="wsDualHttpBinding" 
         bindingConfiguration="Binding1" 
         contract="Microsoft.ServiceModel.Samples.ICalculatorDuplex" />
  </client>

  <bindings>
    <!-- Configure a WSDualHttpBinding that supports duplex -->
    <!-- communication. -->
    <wsDualHttpBinding>
      <binding name="Binding1"
               clientBaseAddress="https://localhost:8000/myClient/"
               useDefaultWebProxy="true"
               bypassProxyOnLocal="false">
      </binding>
    </wsDualHttpBinding>
  </bindings>
</system.serviceModel>

このサンプルを実行する場合は、操作要求および応答はクライアントのコンソール ウィンドウに表示されます。クライアントをシャットダウンするには、クライアント ウィンドウで Enter キーを押します。

Press <ENTER> to terminate client once the output is displayed.

Result(100)
Result(50)
Result(882.5)
Result(441.25)
Equation(0 + 100 - 50 * 17.65 / 2 = 441.25)

サンプルを実行すると、クライアントに戻ってきたメッセージがサービスから送信されたコールバック インターフェイスに表示されます。それぞれの中間結果が表示され、その後にすべての操作が完了したときの数式全体が表示されます。Enter キーを押してクライアントをシャットダウンします。

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

  1. 次のコマンドを使用して、ASP.NET 4.0 をインストールします。

    %windir%\Microsoft.NET\Framework\v4.0.XXXXX\aspnet_regiis.exe /i /enable
    
  2. Windows Communication Foundation サンプルの 1 回限りのセットアップの手順」が実行済みであることを確認します。

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

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

    ms751522.Important(ja-jp,VS.100).gif 注 :
    複数コンピュータ構成でクライアントを実行する場合は、wsDualHttpBinding 要素で、endpoint要素の address 属性と、binding要素の clientBaseAddress 属性の両方に含まれる localhost を、アプリケーション コンピュータの名前に置き換える必要があります。次を参照してください。

    <client>
        <endpoint name = ""
          address=
         "http://service_machine_name/servicemodelsamples/service.svc"
        />
    </client>
    ...
    <wsDualHttpBinding>
        <binding name="DuplexBinding" clientBaseAddress=
            "http://client_machine_name:8000/myClient/">
        </binding>
    </wsDualHttpBinding>