<webMessageEncoding>
允许在 Windows Communication Foundation (WCF) 绑定中使用纯文本 XML、JavaScript 对象表示法 (JSON) 消息编码和“原始”二进制内容时对其进行读写。
configuration
system.serviceModel
<bindings>
<customBinding>
<binding>
<webMessageEncoding>
语法
<webMessageEncoding maxReadPoolSize="Integer"
maxWritePoolSize="Integer"
writeEncoding="UnicodeFffeTextEncoding/Utf16TextEncoding/Utf8TextEncoding" />
特性和元素
下列各节描述了特性、子元素和父元素。
特性
属性 | 说明 |
---|---|
maxReadPoolSize |
无需分配新的读取器便可同时读取的消息数。 池越大,系统允许的活动峰值就越大,但工作集也会随之增大。 默认情况下将为每个内部编码器(文本、JSON 和“原始”)分配 64 个读取器。 增大此数字将会增加内存消耗,但能够让编码器处理传入消息的突现高峰,因为编码器可以使用池中已创建的读取器,而不必创建新的读取器。 |
maxWritePoolSize |
无需分配新的编写器便可同时发送的消息数。 池越大,系统允许的活动峰值就越大,但工作集也会随之增大。 默认情况下将为每个内部编码器(文本、JSON 和“原始”)分配 16 个编写器。 增大此数字将会增加内存消耗,但能够让编码器处理传出消息的突现高峰,因为编码器可以使用池中已创建的编写器,而不必创建新的编写器。 |
writeEncoding |
指定要用来在绑定上发出消息的字符集编码。 有效值是: - UnicodeFffeTextEncoding:Unicode Big Endian 编码。 - Utf16TextEncoding:Unicode 编码。 - Utf8TextEncoding:8 位编码。 默认值为 Utf8TextEncoding。 此属性的类型为 Encoding。 |
子元素
元素 | 说明 |
---|---|
<readerQuotas> | 定义可由采用此绑定配置的终结点进行处理的 SOAP 消息的复杂性约束。 此元素的类型为 XmlDictionaryReaderQuotasElement。 |
父元素
元素 | 说明 |
---|---|
<binding> | 定义自定义绑定的所有绑定功能。 |
备注
编码是将消息转换为一个字节序列的过程。 解码是反向过程。 这些过程都需要字符编码规范。
webMessageEncoding
元素的工作方式是委托一系列内部编码器对纯文本 XML 与 JSON 编码以及“原始”二进制数据进行处理。 委托由复合消息编码器来完成。
在不使用 SOAP 消息(由 webHttpBinding
元素使用)的方案中,用该绑定元素及其复合编码器控制编码。 这些方案包括“纯旧式 XML”(POX)、具象状态传输 (REST)、真正简单的整合 (RSS) 与 Atom 整合以及异步 JavaScript 和 XML (AJAX)。 复合消息编码器不支持 SOAP 或 WS-Addressing。
可以使用 writeEncoding
属性通过写字符编码来配置绑定元素。 所提供的 Encoding 值指定 JSON 与文本 XML 情况的编写行为。 在读取时,将理解任何有效的消息编码与文本编码。
属性 maxReadPoolSize
与 maxWritePoolSize
也可以分别用来设置要分配的读取器和编写器最大数目。 默认情况下,将分配 64 个读取器和 16 个编写器。
此外,还使用 <readerQuotas> 元素设置了默认的复杂性约束,以抵御某种类型的拒绝服务 (DOS) 攻击,这些攻击试图利用消息复杂性来占用终结点处理资源。
示例
<webMessageEncoding maxReadPoolSize="256"
maxWritePoolSize="128"
messageVersion="None"
textEncoding="utf-8" />