トランスポート サンプルでは、さまざまなトランスポート要素とメッセージ エンコード要素を使用してカスタム バインドを構成する方法を示します。 カスタム バインドは、個別のバインド要素の順序付きリストによって定義されます。
注
このサンプルのセットアップ手順とビルド手順は、このトピックの最後にあります。
このサンプルは セルフホストに基づいており、カスタム バインドを使用した HTTP、TCP、および NamedPipe トランスポートをサポートするように 3 つのエンドポイントを構成するように変更されています。 クライアント構成も同様に変更され、3 つのエンドポイントのそれぞれと通信するようにクライアント コードが変更されました。
このサンプルでは、特定のトランスポートとメッセージのエンコードをサポートするカスタム バインドを構成する方法を示します。 これを行うには、 binding
要素のトランスポートとメッセージ エンコーディングを構成します。 バインド要素の順序は、チャネル スタック内のレイヤーを表すカスタム バインドを定義する上で重要です ( カスタム バインドを参照)。 このサンプルでは、3 つのカスタム バインドを構成します。テキスト エンコードを使用した HTTP トランスポート、テキスト エンコードを使用した TCP トランスポート、バイナリ エンコードを使用した NamedPipe トランスポートです。
サービス構成では、カスタム バインドを次のように定義します。
<bindings>
<customBinding>
<binding name="HttpBinding" >
<textMessageEncoding
messageVersion="Soap12Addressing10"/>
<httpTransport />
</binding>
<binding name="TcpBinding" >
<textMessageEncoding />
<tcpTransport />
</binding>
<binding name="NamedPipeBinding" >
<binaryMessageEncoding />
<namedPipeTransport />
</binding>
</customBinding>
</bindings>
サンプルを実行すると、操作の要求と応答がサービスコンソールウィンドウとクライアントコンソールウィンドウの両方に表示されます。 クライアントは 3 つのエンドポイントのそれぞれと通信し、最初の HTTP、TCP、最後に NamedPipe にアクセスします。 どちらかのコンソールで Enter キーを押すと、サービスとクライアントがどちらもシャットダウンされます。
namedPipeTransport
バインドでは、マシン間の操作はサポートされていません。 これは、同じコンピューター上の通信にのみ使用されます。 そのため、クロスマシン シナリオでサンプルを実行する場合は、クライアント コード ファイルで次の行をコメント アウトします。
CalculatorClient client = new CalculatorClient("default");
Console.WriteLine("Communicate with named pipe endpoint.");
// Call operations.
DoCalculations(client);
//Closing the client gracefully closes the connection and cleans up resources
client.Close();
Dim client As New CalculatorClient("default")
Console.WriteLine("Communicate with named pipe endpoint.")
' call operations
DoCalculations(client)
'Closing the client gracefully closes the connection and cleans up resources
client.Close()
注
Svcutil.exe を使用してこのサンプルの構成を再生成する場合は、クライアント構成のエンドポイント名をクライアント コードと一致するように変更してください。
サンプルを設定、ビルド、実行するには
Windows Communication Foundation サンプル のOne-Time セットアップ手順を実行していることを確認します。
ソリューションの C#、C++、または Visual Basic .NET エディションをビルドするには、「 Windows Communication Foundation サンプルのビルド」の手順に従います。
単一または複数のコンピューター間の構成でサンプルを実行するには、「Windows Communication Foundation Samplesの実行」の手順に従います。