Share via


<webMessageEncoding>

讓純文字 XML、JavaScript Object Notation (JSON) 訊息編碼和「原始」二進位內容在 Windows Communication Foundation (WCF) 繫結中使用時,可以進行讀取和寫入。

結構描述階層

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

語法

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

另請參閱

參考

<customBinding>
WebMessageEncodingElement
CustomBinding
MessageEncodingBindingElement
WebMessageEncodingBindingElement

概念

訊息編碼

其他資源

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