次の方法で共有


<<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 maxDepth="Integer" 
            maxStringContentLength="Integer"
            maxByteArrayContentLength="Integer"
            maxBytesPerRead="Integer"
            maxNameTableCharCount="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 型です。

messageVersion

バインディングで構成されるクライアントとサービスが使用するメッセージ バージョンを指定します。この属性は MessageVersion 型です。

name

バインディングの設定名を格納する文字列です。この値は、バインドの ID として使用されるため、一意にする必要があります。各バインドには、サービスのメタデータでこれをまとめて一意に識別する name および namespace 属性が含まれています。また、この名前は、同じ種類のバインド間で一意です。

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>

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

解説

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"
               maxMessageSize="65536" 
               maxBufferSize="65536" 
               maxBufferPoolSize="524288" 
               transferMode="Buffered" 
               messageEncoding="Text" 
               textEncoding="utf-8"
               bypassProxyOnLocal="false"
               useDefaultWebProxy="true" >
              <security mode="None" />
         </binding>
     </basicHttpBinding>
  </bindings>
</system.serviceModel>

関連項目

リファレンス

Binding
BindingElement
BasicHttpBinding
BasicHttpBindingElement

概念

<binding>

その他の技術情報

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