<basicHttpBinding>

ASMX ベースの Web サービスとクライアント、および WS-I Basic Profile 1.1 に準拠するその他のサービスと通信できるエンドポイントを構成および公開するために Windows Communication Foundation (WCF) サービスが使用できるバインディングを表します。

スキーマの階層

<system.serviceModel>
  <bindings>
    <basicHttpBinding>

構文

<basicHttpBinding>
   <binding 
       allowCookies="Boolean"
       bypassProxyOnLocal="Boolean"
       closeTimeout="TimeSpan" 
       envelopeVersion="None/Soap11/Soap12"
       hostNameComparisonMode="StrongWildCard/Exact/WeakWildcard"
       maxBufferPoolSize="Integer"
       maxBufferSize="Integer"
       maxReceivedMessageSize="Integer"
       messageEncoding="Text/Mtom"
              name="string" 
       openTimeout="TimeSpan" 
       proxyAddress="URI"
        receiveTimeout="TimeSpan"
       sendTimeout="TimeSpan"
              textEncoding="UnicodeFffeTextEncoding/Utf16TextEncoding/Utf8TextEncoding"
              transferMode="Buffered/Streamed/StreamedRequest/StreamedResponse"
       useDefaultWebProxy="Boolean"
       <security mode="None/Transport/Message/TransportWithMessageCredential/TransportCredentialOnly">
           <transport clientCredentialType="None/Basic/Digest/Ntlm/Windows/Certificate"
                  proxyCredentialType="None/Basic/Digest/Ntlm/Windows"
                                    realm="string" />
           <message 
                 algorithmSuite="Basic128/Basic192/Basic256/Basic128Rsa15/Basic256Rsa15/TripleDes/TripleDesRsa15/Basic128Sha256/Basic192Sha256/TripleDesSha256/Basic128Sha256Rsa15/Basic192Sha256Rsa15/Basic256Sha256Rsa15/TripleDesSha256Rsa15"
                            clientCredentialType="UserName/Certificate"/>
       </security>
       <readerQuotas 
            maxArrayLength="Integer"
            maxBytesPerRead="Integer"
            maxDepth="Integer"             maxNameTableCharCount="Integer"                maxStringContentLength="Integer" />
   </binding>
</basicHttpBinding>

属性と要素

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

属性

属性 説明

allowCookies

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

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

bypassProxyOnLocal

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

インターネット リソースは、ローカル アドレスを持つ場合ローカルです。ローカル アドレスは、同じコンピューター上、ローカル LAN 上、またはイントラネット上にあり、"http://webserver/"、"https://localhost/" などのピリオド (.) を含まない URI により構文的に識別されるアドレスです。

この属性の設定は、BasicHttpBinding で構成されたエンドポイントがローカル リソースへのアクセス時にプロキシ サーバーを使用するかどうかを示します。この属性が true の場合、ローカル インターネット リソースへの要求はプロキシ サーバーを使用しません。この属性を true に設定した場合で、同じコンピューター上のサービスと対話するクライアントがプロキシを経由するときは、(localhost ではなく) ホスト名を使用します。

この属性が false の場合、すべてのインターネット要求はプロキシ サーバー経由で行われます。

closeTimeout

クローズ操作が完了するまでの期間を指定する TimeSpan 値。この値は必ず Zero 以上である必要があります。既定値は 00:01:00 です。

envelopeVersion

このバインディングによって処理されるメッセージに使用される SOAP のバージョンを指定します。有効値は、Soap11 のみです。

hostnameComparisonMode

URI の解析に使用する HTTP ホスト名比較モードを指定します。この属性は HostnameComparisonMode 型で、URI が一致したときにサービスへのアクセスにホスト名を使用するかどうかを指定します。既定値は StrongWildcard で、一致しているホスト名を無視します。

maxBufferPoolSize

チャネルからメッセージを受け取るメッセージ バッファーのマネージャーが使用するために割り当てられる、最大メモリ量を指定する整数値。既定値は 524288 (0x80000) バイトです。

バッファー マネージャーは、バッファー プールを使用することで、バッファーの使用コストを最小化します。バッファーは、チャネルから出てくるメッセージをサービスが処理するときに必要です。メッセージの読み込み処理に十分なメモリがバッファー プールにない場合、バッファー マネージャーは、CLR ヒープから追加のメモリを割り当てる必要があります。これにより、ガベージ コレクションのオーバーヘッドが増加します。CLR ガベージ ヒープから多大な割り当てが行われることは、バッファー プール サイズが小さすぎること、およびこの属性で指定される制限を緩めて割り当てを増やすとパフォーマンスが向上する可能性があることを示します。

maxBufferSize

このバインディングで構成されるエンドポイントのメッセージが処理されるときのメッセージを格納するバッファーの最大サイズを指定する整数値 (バイト単位)。既定値は 65,536 バイトです。

maxReceivedMessageSize

このバインディングで構成されるチャネルが受信可能なメッセージの最大メッセージ サイズ (ヘッダーを含む) をバイト単位で定義する正の整数。受信側のメッセージが大きすぎると、送信側は SOAP エラーを受け取ります。受信者がメッセージをドロップし、トレース ログにそのイベントのエントリを作成します。既定値は 65,536 バイトです。

messageEncoding

SOAP メッセージのエンコードに使用されるエンコーダーを定義します。有効な値は次のとおりです。

  • Text: テキスト メッセージのエンコーダーを使用します。

  • Mtom: Message Transmission Organization Mechanism 1.0 (MTOM) エンコーダーを使用します。

既定値は Text です。この属性は WSMessageEncoding 型です。

name

バインディングの構成名を格納する文字列。この値は、バインディングの ID として使用されるため、一意にする必要があります。各バインディングには、サービスのメタデータでこれをまとめて一意に識別する name および namespace 属性が含まれています。また、この名前は、同じ種類のバインディング間で一意です。.NET Framework 4 以降では、バインディングおよび動作に名前を付ける必要はありません。既定の構成、および名前のないバインディングと動作の詳細については、「Simplified Configuration」および「Simplified Configuration for WCF Services」を参照してください。

namespace

バインディングの XML 名前空間を指定します。既定値は "http://tempuri.org/Bindings" です。各バインドには、サービスのメタデータでこれをまとめて一意に識別する name および namespace 属性が含まれています。

openTimeout

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

proxyAddress

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

receiveTimeout

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

sendTimeout

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

textEncoding

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

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

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

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

既定値は UTF8 です。この属性は Encoding 型です。

transferMode

要求または応答に対してメッセージがバッファーされるか、ストリーム配信されるかを指定する有効な TransferMode 値。

useDefaultWebProxy

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

子要素

要素 説明

<basicHttpBinding> の <security>

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

<readerQuotas>

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

親要素

要素 説明

<bindings>

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

解説

BasicHttpBinding では、SOAP 1.1 メッセージを送信するために、HTTP をトランスポートとして使用します。サービスは、ASMX クライアントが消費するエンドポイントなど、WS-I BP 1.1 に準拠するエンドポイントを開示するためにこのバインディングを使用できます。同様に、クライアントは BasicHttpBinding を使用して、ASMX Web サービスや BasicHttpBinding で構成されるサービスなどの WS-I BP 1.1 に準じるエンドポイントを公開するサービスと通信できます。

既定ではセキュリティは無効になります。ただし、<basicHttpBinding> の <security>None 子要素のモード属性に 以外の値を設定してセキュリティを追加できます。サービスは、"Text" メッセージ エンコードおよび UTF-8 テキスト エンコードを既定で使用します。

第 1 世代と第 2 世代の Web サービスで HTTP 通信と最大限の相互運用性を実現する、BasicHttpBinding の使用例を次に示します。バインディングは、クライアントとサービスの構成ファイルに指定されます。バインディングの種類は、<endpoint> 要素の binding 属性を使用して指定します。基本的なバインディングを構成してその設定の一部を変更する場合は、バインディング構成を定義する必要があります。エンドポイントは、<endpoint> 要素の bindingConfiguration 属性を使用して、名前でバインディング構成を参照する必要があります。次のサービスの構成コードを参照してください。

<system.serviceModel> 
  <services>
    <service 
        type="Microsoft.ServiceModel.Samples.CalculatorService"
        behaviorConfiguration="CalculatorServiceBehavior">
       <endpoint address=""
             binding="basicHttpBinding"
             bindingConfiguration="Binding1" 
             contract="Microsoft.ServiceModel.Samples.ICalculator" />
    </service>
  </services>
  <bindings>
     <basicHttpBinding>
        <binding name="Binding1" 
               hostNameComparisonMode="StrongWildcard" 
               receiveTimeout="00:10:00"
               sendTimeout="00:10:00"
               openTimeout="00:10:00"
               closeTimeout="00:10:00"
               maxReceivedMessageSize="65536" 
               maxBufferSize="65536" 
               maxBufferPoolSize="524288" 
               transferMode="Buffered" 
               messageEncoding="Text" 
               textEncoding="utf-8"
               bypassProxyOnLocal="false"
               useDefaultWebProxy="true" >
              <security mode="None" />
         </binding>
     </basicHttpBinding>
  </bindings>
</system.serviceModel>

.NET Framework 4 以降では、バインディングおよび動作に名前を付ける必要はありません。前の例の機能を実行するには、エンドポイント アドレスの bindingConfiguration とバインディングの名前を削除します。

<system.serviceModel> 
  <services>
    <service 
        type="Microsoft.ServiceModel.Samples.CalculatorService"
        behaviorConfiguration="CalculatorServiceBehavior">
       <endpoint address=""
             binding="basicHttpBinding"
             contract="Microsoft.ServiceModel.Samples.ICalculator" />
    </service>
  </services>
  <bindings>
     <basicHttpBinding>
        <binding 
               hostNameComparisonMode="StrongWildcard" 
               receiveTimeout="00:10:00"
               sendTimeout="00:10:00"
               openTimeout="00:10:00"
               closeTimeout="00:10:00"
               maxReceivedMessageSize="65536" 
               maxBufferSize="65536" 
               maxBufferPoolSize="524288" 
               transferMode="Buffered" 
               messageEncoding="Text" 
               textEncoding="utf-8"
               bypassProxyOnLocal="false"
               useDefaultWebProxy="true" >
              <security mode="None" />
         </binding>
     </basicHttpBinding>
  </bindings>
</system.serviceModel>

既定の構成、および名前のないバインディングと動作の詳細については、「Simplified Configuration」および「Simplified Configuration for WCF Services」を参照してください。

参照

リファレンス

Binding
BindingElement
BasicHttpBinding
BasicHttpBindingElement

概念

<binding>

その他のリソース

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