<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 です。この属性は 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。useSystemWebProxy が true に設定されている場合、この設定は null である必要があります。既定値は null です。 |
receiveTimeout |
受信操作が完了するまでの時間間隔を指定する TimeSpan 値です。この値は必ず Zero 以上である必要があります。既定値は 00:10:00 です。 |
sendTimeout |
送信操作が完了するまでの時間間隔を指定する TimeSpan 値です。この値は必ず Zero 以上である必要があります。既定値は 00:01:00 です。 |
textEncoding |
バインディングでメッセージの発行に使用される文字セット エンコーディングを設定します。有効な値は次のとおりです。
既定値は UTF8 です。この属性は Encoding 型です。 |
transferMode |
要求または応答に対してメッセージがバッファーされるか、ストリーム配信されるかを指定する有効な TransferMode 値。 |
useDefaultWebProxy |
使用できる場合にシステムの自動設定 HTTP プロキシを使用するかどうかを指定するブール値。既定値は true です。 |
子要素
要素 | 説明 |
---|---|
バインディングのセキュリティ設定を定義します。この要素は BasicHttpSecurityElement 型です。 |
|
このバインディングを使用して設定されるエンドポイントにより処理可能な、SOAP メッセージの複雑さに対する制約を定義します。この要素は XmlDictionaryReaderQuotasElement 型です。 |
親要素
要素 | 説明 |
---|---|
この要素には、標準バインディングおよびカスタム バインディングのコレクションが保持されます。 |
解説
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
概念
その他のリソース
Windows Communication Foundation Bindings
Configuring System-Provided Bindings
Using Bindings to Configure Services and Clients