Windows Communication Foundation (WCF) サービスが、ASMX ベースの Web サービスおよびクライアント、および WS-I Basic Profile 1.1 に準拠する他のサービスと通信できるエンドポイントを構成および公開するために使用できるバインディングを表します。
<configuration>
<system.serviceModel>
<bindings>
<basicHttpBinding>
構文
<basicHttpBinding>
<binding allowCookies="Boolean"
bypassProxyOnLocal="Boolean"
closeTimeout="TimeSpan"
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>
属性および要素
以降のセクションでは、属性、子要素、および親要素について説明します。
Attributes
| 特性 | Description |
|---|---|
allowCookies |
クライアントが Cookie を受け入れ、今後の要求に反映するかどうかを示すブール値。 既定値は falseです。このプロパティは、Cookie を使用する ASMX Web サービスと対話するときに使用できます。 この方法では、サーバーから返された Cookie が、そのサービスに対する今後のすべてのクライアント要求に自動的にコピーされることを確認できます。 |
bypassProxyOnLocal |
ローカル アドレスのプロキシ サーバーをバイパスするかどうかを示すブール値。 既定値は falseです。インターネット リソースは、ローカル アドレスを持つ場合はローカルです。 ローカル アドレスは、同じコンピューター、ローカル LAN、またはイントラネット上にあり、URI http://webserver/ や http://localhost/のようにピリオド (.) がないために構文的に識別されます。この属性を設定すると、BasicHttpBinding で構成されたエンドポイントがローカル リソースにアクセスするときにプロキシ サーバーを使用するかどうかが決まります。 この属性が trueされている場合、ローカル インターネット リソースへの要求ではプロキシ サーバーは使用されません。 この属性が trueに設定されているときに、同じコンピューター上のサービスと通信するときにクライアントがプロキシを経由する場合は、(localhost ではなく) ホスト名を使用します。この属性が falseされると、すべてのインターネット要求がプロキシ サーバー経由で行われます。 |
closeTimeout |
閉じる操作が完了するまでに指定された時間間隔を指定する TimeSpan 値。 この値は、 Zero以上である必要があります。 既定値は 00:01:00 です。 |
hostNameComparisonMode |
URI の解析に使用する HTTP ホスト名比較モードを指定します。 この属性は HostNameComparisonMode 型であり、URI で照合するときにホスト名を使用してサービスに到達するかどうかを示します。 既定値は StrongWildcard であり、一致するホスト名は無視されます。 |
maxBufferPoolSize |
チャネルからメッセージを受信するメッセージ バッファーのマネージャーが使用するために割り当てられるメモリの最大量を指定する整数値。 既定値は 524288 (0x80000) バイトです。 バッファー マネージャーは、バッファー プールを使用してバッファーを使用するコストを最小限に抑えます。 バッファーは、チャネルから出るときにサービスによってメッセージを処理するために必要です。 バッファー プールにメッセージの読み込みを処理するための十分なメモリがない場合、バッファー マネージャーは CLR ヒープから追加のメモリを割り当てる必要があり、ガベージ コレクションのオーバーヘッドが増加します。 CLR ガベージ ヒープからの広範な割り当ては、バッファー プールのサイズが小さすぎること、およびこの属性で指定された制限を大きくすることで、割り当てが大きくなるとパフォーマンスを向上できることを示しています。 |
maxBufferSize |
このバインディングで構成されたエンドポイントに対してメッセージが処理されている間にメッセージを格納するバッファーの最大サイズをバイト単位で指定する整数値。 既定値は 65,536 バイトです。 |
maxReceivedMessageSize |
このバインディングで構成されたチャネルで受信できるメッセージの最大メッセージ サイズ (ヘッダーを含むバイト単位) を定義する正の整数。 メッセージが受信者に対して大きすぎる場合、送信者は SOAP エラーを受信します。 受信側はメッセージを削除し、トレース ログにイベントのエントリを作成します。 既定値は 65,536 バイトです。 |
messageEncoding |
SOAP メッセージのエンコードに使用するエンコーダーを定義します。 有効な値は次のとおりです。 - テキスト: テキスト メッセージ エンコーダーを使用します。 - Mtom: メッセージ送信組織メカニズム 1.0 (MTOM) エンコーダーを使用します。 既定値は Text です。 この属性は WSMessageEncoding型です。 |
name |
バインディングの構成名を含む文字列。 この値は、同じ型のバインド間で一意である必要があります。 .NET Framework 4 以降では、バインドと動作に名前を付ける必要はありません。 既定の構成と名前のないバインディングと動作の詳細については、「WCF サービスの 簡略化された構成 と 簡略化された構成」を参照してください。 |
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 |
バインディングでメッセージを出力するために使用する文字セット エンコードを設定します。 有効な値は次のとおりです。 - BigEndianUnicode: Unicode BigEndian エンコード。 - Unicode: 16 ビット エンコード。 - UTF8: 8 ビット エンコード 既定値は UTF8 です。 この属性は Encoding型です。 |
transferMode |
メッセージをバッファー処理するか、要求または応答でストリーミングするかを指定する有効な TransferMode 値。 |
useDefaultWebProxy |
システムの自動構成 HTTP プロキシを使用する必要があるかどうかを指定するブール値 (使用可能な場合)。 既定値は trueです。 |
子要素
| 要素 | Description |
|---|---|
| <安全> | バインディングのセキュリティ設定を定義します。 この要素は BasicHttpSecurityElement型です。 |
| <readerQuotas> | このバインディングで構成されたエンドポイントによって処理できる SOAP メッセージの複雑さに関する制約を定義します。 この要素は XmlDictionaryReaderQuotasElement型です。 |
親要素
| 要素 | Description |
|---|---|
| <バインド> | この要素は、標準バインドとカスタム バインドのコレクションを保持します。 |
注釈
BasicHttpBinding は、SOAP 1.1 メッセージを送信するためのトランスポートとして HTTP を使用します。 サービスはこのバインディングを使用して、ASMX クライアントが使用するエンドポイントなど、WS-I BP 1.1 に準拠するエンドポイントを公開できます。 同様に、クライアントは BasicHttpBinding を使用して、WS-I BP 1.1 に準拠するエンドポイント (ASMX Web サービスや BasicHttpBinding で構成されたサービスなど) を公開するサービスと通信できます。
セキュリティは既定ではオフになっていますが、 <security> 子要素の mode 属性を None以外の値に設定して追加できます。 既定では、"テキスト" メッセージ エンコードと UTF-8 テキスト エンコードが使用されます。
例 1
次の例では、第 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>
例 2
.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>
既定の構成と名前のないバインディングと動作の詳細については、「WCF サービスの 簡略化された構成 と 簡略化された構成」を参照してください。
こちらも参照ください
.NET