<wsDualHttpBinding>

双方向サービス コントラクト、または SOAP 中継局を介しての通信に適した、セキュリティで保護されて信頼できる相互操作可能なバインディングを定義します。

configuration
  system.serviceModel
    <bindings>
      wsDualHttpBinding>

構文

<wsDualHttpBinding>
  <binding name="String"
          closeTimeout="TimeSpan"
          openTimeout="TimeSpan"
          receiveTimeout="TimeSpan"
          sendTimeout="TimeSpan"
          bypassProxyOnLocal="Boolean"
          clientBaseAddress="URI"
          transactionFlow="Boolean"
          hostNameComparisonMode="StrongWildCard/Exact/WeakWildcard"
          maxBufferPoolSize="integer"
          maxReceivedMessageSize="Integer"
          messageEncoding="Text/Mtom"
          proxyAddress="URI"
          textEncoding="Unicode/BigEndianUnicode/UTF8"
          useDefaultWebProxy="Boolean">
    <reliableSession ordered="Boolean"
                     inactivityTimeout="TimeSpan" />
    <security mode="None/Message">
      <message clientCredentialType="None/Windows/UserName/Certificate/CardSpace"
               negotiateServiceCredential="Boolean"
               algorithmSuite="Basic128/Basic192/Basic256/Basic128Rsa15/Basic256Rsa15/TripleDes/TripleDesRsa15/Basic128Sha256/Basic192Sha256/TripleDesSha256/Basic128Sha256Rsa15/Basic192Sha256Rsa15/Basic256Sha256Rsa15/TripleDesSha256Rsa15" />
    </security>
    <readerQuotas maxArrayLength="Integer"
                  maxBytesPerRead="Integer"
                  maxDepth="Integer"
                  maxNameTableCharCount="Integer"
                  maxStringContentLength="Integer" />
  </binding>
</wsDualHttpBinding>

属性および要素

以降のセクションでは、属性、子要素、および親要素について説明します。

属性

属性 説明
bypassProxyOnLocal ローカル アドレスでプロキシ サーバーをバイパスするかどうかを示すブール値。 既定では、 falseです。
clientBaseAddress サービスからの応答メッセージをクライアントがリッスンするベース アドレスを設定する URI。 指定されている場合は、このアドレス (およびチャネルごとの GUID) がリッスンに使用されます。 値が指定されていない場合は、クライアント ベース アドレスは、トランスポートに固有の方法で生成されます。 既定では、 nullです。
closeTimeout クローズ操作が完了するまでの期間を指定する TimeSpan 値。 この値は必ず Zero 以上である必要があります。 既定値は 00:01:00 です。
hostnameComparisonMode URI の解析に使用する HTTP ホスト名比較モードを指定します。 この属性は HostNameComparisonMode 型で、URI が一致したときにサービスへのアクセスにホスト名を使用するかどうかを指定します。 既定値は StrongWildcard で、一致しているホスト名を無視します。
maxBufferPoolSize このバインディングに使用するバッファー プール サイズの上限を指定する整数。 既定は 524,288 バイト (512 * 1024) です。 Windows Communication Foundation (WCF) では、多くの部分でバッファーを使用します。 使用するたびに毎回バッファーを作成および破壊すると負荷が高くなります。バッファーのガベージ コレクションも同様です。 バッファー プールを使用すると、バッファーをプールから取得して使用し、作業が終わったらプールに戻すことができます。 これで、バッファーの作成と破棄のオーバーヘッドを回避できます。
maxReceivedMessageSize このバインディングで構成されるチャネルで受信可能な最大メッセージ サイズ (ヘッダーを含む) をバイト単位で指定する正の整数。 この制限を超えるメッセージの送信者が、SOAP エラーを受信します。 メッセージは受信者によってドロップされ、トレース ログにこのイベントのエントリが作成されます。 既定値は 65536 です。
messageEncoding メッセージのエンコードに使用されるエンコーダーを定義します。 有効な値は次のとおりです。

- Text: テキスト メッセージ エンコーダーを使用します。
- Mtom: Message Transmission Organization Mechanism 1.0 (MTOM) エンコーダーを使用します。
- 既定値は Text です。

この属性は WSMessageEncoding 型です。
name バインディングの構成名を格納する文字列です。 この値は、バインディングの ID として使用されるため、一意にする必要があります。 NET Framework 4 以降では、バインディングおよび動作に名前を付ける必要はありません。 既定の構成と、名前のないバインディングと動作については、「簡略化された構成」と「WCF サービスの簡略化された構成」を参照してください。
openTimeout 実行中の操作が完了するまでの時間間隔を指定する TimeSpan 値です。 この値は必ず Zero 以上である必要があります。 既定値は 00:01:00 です。
proxyAddress HTTP プロキシのアドレスを指定する URI。 useDefaultWebProxytrue の場合、この設定を null にする必要があります。 既定では、 nullです。
receiveTimeout 受信操作が完了するまでの時間間隔を指定する TimeSpan 値です。 この値は必ず Zero 以上である必要があります。 既定値は 00:01:00 です。
sendTimeout 送信操作が完了するまでの時間間隔を指定する TimeSpan 値です。 この値は必ず Zero 以上である必要があります。 既定値は 00:01:00 です。
textEncoding バインディングでメッセージの発行に使用される文字セット エンコーディングを設定します。 有効な値は次のとおりです。

- BigEndianUnicode: Unicode BigEndian エンコード。
- Unicode: 16 ビット エンコード。
- UTF8: 8 ビット エンコード。

既定値は UTF8 です。 この属性は Encoding 型です。
transactionFlow バインディングが WS-Transactions のフローをサポートするかどうかを指定するブール値です。 既定では、 falseです。
useDefaultWebProxy システムの自動設定 HTTP プロキシを使用するかどうかを示すブール値。 この属性が null の場合、プロキシ アドレスを true (つまり、設定しない) にする必要があります。 既定では、 trueです。

子要素

要素 説明
<security> バインディングのセキュリティ設定を定義します。 この要素は WSDualHttpSecurityElement 型です。
<readerQuotas> このバインドを使用して設定されるエンドポイントにより処理可能な、SOAP メッセージの複雑さに対する制約を定義します。 この要素は XmlDictionaryReaderQuotasElement 型です。
<reliableSession> チャネルのエンドポイント間に信頼できるセッションを確立するかどうかを指定します。

親要素

要素 説明
<bindings> この要素には、標準バインディングおよびカスタム バインドのコレクションが保持されます。

解説

WSDualHttpBinding は、WSHttpBinding と同じ Web サービス プロトコルをサポートしますが、双方向コントラクトでの使用を想定しています。 WSDualHttpBinding は SOAP セキュリティのみをサポートし、信頼できるメッセージングを要求します。 このバインディングでは、クライアントが、サービスのコールバック エンドポイントを提供するパブリック URI を保持していることが必要です。 これは clientBaseAddress 属性によって提供されます。 二重バインディングでは、クライアントの IP アドレスをサービスに公開します。 クライアントは、セキュリティを使用して信頼するサービスに対して接続のみを可能にする必要があります。

このバインディングは、1 つ以上の SOAP 中継局を通じて信頼できる方法で通信するために使用できます。

既定では、このバインディングは、信頼のための WS-ReliableMessaging、メッセージ セキュリティと認証用 WS-Security、メッセージ配信用 HTTP、および Text/XML メッセージ エンコーディングを持つランタイム スタックを生成します。

<configuration>
  <system.ServiceModel>
    <bindings>
      <wsDualHttpBinding>
        <binding closeTimeout="00:00:10"
                 openTimeout="00:00:20"
                 receiveTimeout="00:00:30"
                 sendTimeout="00:00:40"
                 bypassProxyOnLocal="false"
                 clientBaseAddress="http://localhost:8001/client/"
                 transactionFlow="true"
                 hostNameComparisonMode="WeakWildcard"
                 maxReceivedMessageSize="1000"
                 messageEncoding="Mtom"
                 proxyAddress="http://foo/bar"
                 textEncoding="utf-16"
                 useDefaultWebProxy="false">
          <reliableSession ordered="false"
                           inactivityTimeout="00:02:00" />
          <security mode="None">
            <message clientCredentialType="None"
                     negotiateServiceCredential="false"
                     algorithmSuite="Aes128" />
          </security>
        </binding>
      </wsDualHttpBinding>
    </bindings>
  </system.ServiceModel>
</configuration>

関連項目