次の方法で共有


<<wsDualHttpBinding>>

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

<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 maxDepth="integer" 
           maxStringContentLength="integer"
           maxByteArrayContentLength="integer"
           maxBytesPerRead="integer"
           maxNameTableCharCount="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 として使用されるため、一意にする必要があります。

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 プロキシを使用するかどうかを示すブール値。この属性が true の場合、プロキシ アドレスを null (つまり、設定しない) にする必要があります。既定値は true です。

子要素

要素 説明

<wsDualHttpBinding> の <security>

バインディングのセキュリティ設定を定義します。この要素は WSDualHttpSecurityElement 型です。

<readerQuotas>

このバインディングを使用して設定されるエンドポイントにより処理可能な、SOAP メッセージの複雑さに対する制約を定義します。この要素は XmlDictionaryReaderQuotasElement 型です。

<reliableSession> 要素

チャネルのエンドポイント間に信頼できるセッションを確立するかどうかを指定します。

親要素

要素 説明

<bindings>

この要素には、標準バインディングおよびカスタム バインディングのコレクションが保持されます。各エントリは、それぞれの name によって識別されます。サービスは、name を使用してバインディングをリンクすることにより、バインディングを使用します。

解説

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

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

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

<configuration>
<system.ServiceModel>
<bindings>
<wsDualHttpBinding>
    <binding name="test"
        closeTimeout="00:00:10"
        openTimeout="00:00:20" 
        receiveTimeout="00:00:30"
        sendTimeout="00:00:40"
        bypassProxyOnLocal="false" 
        clientBaseAddress="https://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>

関連項目

リファレンス

WSDualHttpBinding
WSDualHttpBindingElement

概念

<binding>

その他の技術情報

Windows Communication Foundation Bindings
Configuring System-Provided Bindings
Using Bindings to Configure Services and Clients