<<wsHttpBinding>>

双方向サービス コントラクト以外に適した、安全で信頼のおける相互操作可能なバインディングを定義します。バインディングは、信頼のための WS-ReliableMessaging、およびメッセージのセキュリティと認証のための WS-Security を実装します。トランスポートは HTTP、メッセージ エンコーディングは Text/XML エンコーディングです。

スキーマの階層

<system.serviceModel>
  <bindings>
    <<wsHttpBinding>>

構文

<wsHttpBinding>
    <binding 
        allowCookies="Boolean"
        bypassProxyOnLocal="Boolean"
        closeTimeout="TimeSpan"
        hostNameComparisonMode="StrongWildCard/Exact/WeakWildcard"
        maxBufferPoolSize="integer"
        maxReceivedMessageSize="Integer"
        messageEncoding="Text/Mtom" 
                name="string"
        openTimeout="TimeSpan" 
        proxyAddress="URI"
        receiveTimeout="TimeSpan"
        sendTimeout="TimeSpan"
                textEncoding="UnicodeFffeTextEncoding/Utf16TextEncoding/Utf8TextEncoding"
        transactionFlow="Boolean"
        useDefaultWebProxy="Boolean">
        <reliableSession ordered="Boolean"
           inactivityTimeout="TimeSpan"
           enabled="Boolean" />
        <security mode="Message/None/Transport/TransportWithCredential">
           <transport clientCredentialType="Basic/Certificate/Digest/None/Ntlm/Windows"
                proxyCredentialType="Basic/Digest/None/Ntlm/Windows"
                realm="string" />
          <message 
             algorithmSuite="Basic128/Basic192/Basic256/Basic128Rsa15/Basic256Rsa15/TripleDes/TripleDesRsa15/Basic128Sha256/Basic192Sha256/TripleDesSha256/Basic128Sha256Rsa15/Basic192Sha256Rsa15/Basic256Sha256Rsa15/TripleDesSha256Rsa15"
                          clientCredentialType="Certificate/IssuedToken/None/UserName/Windows"
             establishSecurityContext="Boolean"
             negotiateServiceCredential="Boolean" />
        </security>
       <readerQuotas             maxArrayLength="Integer"            maxBytesPerRead="Integer"            maxDepth="Integer"             maxNameTableCharCount="Integer"                     maxStringContentLength="Integer" />
    </binding>
</wsHttpBinding>

属性と要素

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

属性

属性 説明

allowCookies

クライアントが Cookie を受け入れて、それらを今後の要求に反映させるかどうかを示すブール値。既定値は false です。

Cookie を使用する ASMX Web サービスと対話する場合に、このプロパティを使用できます。この方法で、サーバーから返される Cookie を、それ以降のサービスに対するすべてのクライアント要求に自動的にコピーできます。

bypassProxyOnLocal

ローカル アドレスでプロキシ サーバーをバイパスするかどうかを示すブール値。既定値は false です。

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 以降では、バインディングおよび動作に名前を付ける必要はありません。既定の構成、および名前のないバインディングと動作の詳細については、「Simplified Configuration」および「Simplified Configuration for WCF Services」を参照してください。

openTimeout

実行中の操作が完了するまでの時間間隔を指定する TimeSpan 値です。この値は必ず Zero 以上である必要があります。既定値は 00:01:00 です。

proxyAddress

HTTP プロキシのアドレスを指定する URI。useSystemWebProxytrue の場合、この設定を null にする必要があります。既定値は null です。

receiveTimeout

受信操作が完了するまでの時間間隔を指定する TimeSpan 値です。この値は必ず Zero 以上である必要があります。既定値は 00:01:00 です。

sendTimeout

送信操作が完了するまでの時間間隔を指定する TimeSpan 値です。この値は必ず Zero 以上である必要があります。既定値は 00:01:00 です。

textEncoding

バインディングでメッセージの発行に使用される文字セット エンコーディングを指定します。有効な値は次のとおりです。

  • UnicodeFffeTextEncoding: Unicode BigEndian エンコーディング。

  • Utf16TextEncoding: 16 ビットのエンコーディング。

  • Utf8TextEncoding: 8 ビットのエンコーディング。

既定値は Utf8TextEncoding です。

この属性は Encoding 型です。

transactionFlow

バインディングが WS-Transactions のフローをサポートするかどうかを指定するブール値です。既定値は false です。

useDefaultWebProxy

システムの自動設定 HTTP プロキシを使用するかどうかを示すブール値。既定値は true です。

子要素

要素 説明

<wsHttpBinding> の <security>

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

<readerQuotas>

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

reliableSession

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

親要素

要素 説明

<bindings>

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

解説

WSHttpBindingBasicHttpBinding に似ていますが、より多くの Web サービス機能を提供します。BasicHttpBinding と同じように HTTP トランスポートを使用し、メッセージ セキュリティを提供します。さらに、トランザクション、信頼できるメッセージング、および WS-Addressing も提供します。これらは、既定で有効化になっているか、または単一の制御設定で使用できるようになります。

<configuration>
    <system.ServiceModel>
        <bindings>
            <wsHttpBinding>
                <binding 
                    closeTimeout="00:00:10"
                    openTimeout="00:00:20" 
                    receiveTimeout="00:00:30"
                    sendTimeout="00:00:40"
                    bypassProxyOnLocal="false"
                    transactionFlow="false" 
                    hostNameComparisonMode="WeakWildcard"
                    maxReceivedMessageSize="1000"
                    messageEncoding="Mtom" 
                    proxyAddress="http://foo/bar"
                    textEncoding="utf-16"
                    useDefaultWebProxy="false">
                    <reliableSession ordered="false"
                         inactivityTimeout="00:02:00"
                         enabled="true" />
                    <security mode="Transport">
                         <transport clientCredentialType="Digest"
                            proxyCredentialType="None"
                            realm="someRealm" />
                         <message clientCredentialType="Windows"
                            negotiateServiceCredential="false"
                            algorithmSuite="Aes128" 
                            defaultProtectionLevel="None" />
                    </security>
                </binding>
           </wsHttpBinding>
        </bindings>
    </system.ServiceModel>
</configuration>

参照

リファレンス

WSHttpBinding
WSHttpBindingElement

概念

<binding>

その他のリソース

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