次の方法で共有


<webMessageEncoding>

Windows Communication Foundation (WCF) での使用時に、プレーンテキストの XML、JavaScript Object Notation (JSON) メッセージ エンコード、および "無変換の" バイナリ コンテンツの読み取りおよび書き込みを有効にします。

configuration
  system.serviceModel
    <bindings>
      <customBinding>
        <binding>
          <webMessageEncoding>

構文

<webMessageEncoding maxReadPoolSize="Integer"
                    maxWritePoolSize="Integer"
                    writeEncoding="UnicodeFffeTextEncoding/Utf16TextEncoding/Utf8TextEncoding" />

属性および要素

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

属性

属性 説明
maxReadPoolSize 新しいリーダーを割り当てずに同時に読み取ることができるメッセージの数。 プール サイズを大きくすると、システムでは、比較的大きい作業セットで、アクティビティの急増に対する許容度が高まります。 既定値は、内部エンコーダー (Text、JSON、および raw (生)) ごとに 64 リーダーです。

この数を増やすとメモリの消費量が増えますが、受信メッセージ数の急激な増加にエンコーダーが対処できるようになります。これは、作成済みのリーダーをプールから使用でき、新しいリーダーを作成する必要がないためです。
maxWritePoolSize 新しいライターを割り当てずに同時に送信できるメッセージの数。 プール サイズを大きくすると、システムでは、比較的大きい作業セットで、アクティビティの急増に対する許容度が高まります。 既定値は、内部エンコーダー (Text、JSON、および raw (生)) ごとに 64 リーダーです。

この数を増やすとメモリの消費が増えますが、送信メッセージ数の急激な増加にエンコーダーが対処できるようになります。これは、作成済みのライターをプールから使用でき、新しいライターを作成する必要がないためです。
writeEncoding バインドでメッセージの発行に使用される文字セット エンコーディングを指定します。 次の値を指定できます。

- UnicodeFffeTextEncoding: Unicode ビッグ エンディアン エンコーディング。
- Utf16TextEncoding: Unicode エンコーディング。
- Utf8TextEncoding: 8 ビットのエンコード。

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

子要素

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

親要素

要素 説明
<binding> カスタム バインドのすべてのバインド機能を定義します。

解説

エンコーディングは、メッセージをバイト シーケンスに変換するプロセスです。 デコードは、その逆のプロセスです。 これらのプロセスでは、文字エンコーディングの指定が必要です。

webMessageEncoding 要素は、プレーンテキストの XML と JSON エンコーディング、および "生" のバイナリ データの処理を、一連の内部エンコーダーに代行させることで機能します。 この委任は、複合メッセージ エンコーダーによって実行されます。

このバインディング要素と複合エンコーダーは、webHttpBinding 要素によって使用される SOAP メッセージを使用しないシナリオでのエンコーディングを制御するために使用されます。 これらのシナリオには、POX ("Plain Old XML")、REST (Representational State Transfer)、RSS (Really Simple Syndication) と Atom 配信、および AJAX (Asynchronous JavaScript and XML) が含まれます。 複合メッセージ エンコーダーは SOAP または WS-Addressing をサポートしません。

writeEncoding 属性を使用すると、バインディング要素に書き込みの文字エンコーディングを構成できます。 指定された Encoding 値は、JSON およびテキスト形式の XML の場合の書き込みの動作を指定します。 読み取りについては、任意の有効なメッセージ エンコーディングとテキスト エンコーディングが認識されます。

maxReadPoolSizemaxWritePoolSize を使用して、割り当てられるリーダーとライターの最大数をそれぞれ設定することもできます。 既定では、64 のリーダーと 16 のライターが割り当てられています。

既定の複雑さの制約は、<readerQuotas> 要素を使用して設定されます。これにより、メッセージの複雑さを利用してエンドポイント処理リソースを停滞させる、サービス拒否 (DOS) 型の攻撃から保護できます。

<webMessageEncoding maxReadPoolSize="256"
                    maxWritePoolSize="128"
                    messageVersion="None"
                    textEncoding="utf-8" />

関連項目