共用方式為


<webMessageEncoding>

啟用在用於 Windows Communication Foundation (WCF) 繫結時,要讀取與寫入的純文字 XML、JavaScript Object Notation (JSON) 訊息編碼和「未經處理」二進位內容。

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

Syntax

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

屬性和項目

下列章節說明屬性、子元素和父元素。

屬性

屬性 描述
maxReadPoolSize 可以同時讀取,而不需配置新讀取器的訊息數。 較大的集區大小可讓系統容許更多活動失效的情況,但是會產生較大的工作集。 每個內部編碼器 (text、JSON 與 "raw") 都預設有 64 個讀取器。

增加這個數字會增加記憶體消耗量,但是可讓編碼器做好處理傳入訊息量突然暴增的準備,因為編碼器可以使用集區中已經建立的讀取器,而不必建立新的讀取器。
maxWritePoolSize 可以同時傳送,而不需配置新寫入器的訊息數。 較大的集區大小可讓系統容許更多活動失效的情況,但是會產生較大的工作集。 每個內部編碼器 (text、JSON 與 "raw") 都預設有 16 個寫入器。

增加這個數字會增加記憶體消耗量,但是可讓編碼器做好處理傳出訊息量突然暴增的準備,因為編碼器可以使用集區中已經建立的寫入器,而不必建立新的寫入器。
writeEncoding 指定要在繫結上發出訊息時使用的字元集編碼方式。 有效值為:

- UnicodeFffeTextEncoding:Unicode Big Endian 編碼。
- Utf16TextEncoding:Unicode 編碼。
- Utf8TextEncoding:8 位元編碼。

預設為 Utf8TextEncoding。 此屬性的型別為 Encoding

子元素

元素 描述
<readerQuotas> 定義 SOAP 訊息複雜度的條件約束,而這些條件約束可由以此繫結所設定的端點處理。 此項目的型別為 XmlDictionaryReaderQuotasElement

父項目

元素 描述
<binding> 定義自訂繫結的所有繫結功能。

備註

編碼是將訊息轉換成位元組序列的處理序, 解碼則是相反的處理序。 這些處理序需要字元編碼的規格。

webMessageEncoding 項目的運作方式是委派給一系列的內部編碼器,以處理純文字 XML 和 JSON 編碼以及「原始」二進位資料。 這項委派是由複合訊息編碼器所完成。

在不使用 webHttpBinding 項目使用之 SOAP 傳訊的案例中,會使用這個繫結項目及其複合編碼器來控制其編碼方式。 這些案例包括 "Plain Old XML" (POX)、代表性狀態傳輸 (Representational State Transfer,REST)、Really Simple Syndication (RSS) 和 Atom 新聞訂閱,以及 Asynchronous JavaScript 與 XML (AJAX)。 複合訊息編碼器不支援 SOAP 或 WS-Addressing。

此繫結項目可藉由 writeEncoding 屬性,透過寫入字元編碼的方式進行設定。 提供的 Encoding 值會指定 JSON 和 Textual XML 案例在寫入時的行為。 在讀取時,任何有效的訊息編碼和文字編碼都是可解讀的。

maxReadPoolSizemaxWritePoolSize 也可以用來設定要分別配置之讀取器和寫入器的最大數目。 根據預設,將配置 64 個讀取器和 16 個寫入器。

預設的複雜性條件約束也可以使用 <readerQuotas> 元素進行設定,抵禦會嘗試使用訊息複雜性困住端點處理資源的拒絕服務 (DOS) 攻擊類別。

範例

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

另請參閱