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