次の方法で共有


<webMessageEncoding>

Windows Communication Foundation (WCF) バインディングで使用されるときに、プレーンテキストの XML、JSON (JavaScript Object Notation) メッセージ エンコーディング、および "生の" バイナリ コンテンツの読み取りと書き込みができるようにします。

<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” 
/>

関連項目

リファレンス

<customBinding>
WebMessageEncodingElement
CustomBinding
MessageEncodingBindingElement
WebMessageEncodingBindingElement

概念

メッセージ エンコーディング

その他の技術情報

Choosing a Message Encoder
Windows Communication Foundation Bindings
Extending Bindings
Custom Bindings