次の方法で共有


WS デュアル Http

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

このサンプルのセットアップ手順とビルド手順は、このトピックの最後にあります。

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

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

クライアントでは、次のサンプル構成に示すように、サーバーがクライアントへの接続に使用できるアドレスを構成する必要があります。

<system.serviceModel>
  <client>
    <endpoint address=
         "http://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="http://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 サンプル One-Time セットアップ手順を実行していることを確認します。

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

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

    Von Bedeutung

    クロスマシン構成でクライアントを実行する場合は、次に示すように、addressclient< 要素の 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>