读取 XML 数据时,超出最大字符串内容长度配额 (8192)

问题描述,在调用接口报错:

格式化程序尝试对消息反序列化时引发异常: 

尝试对参数 http://tempuri.org/ 进行反序列化时出错: GetRechargeInfoListResponse。InnerException 消息是“反序列化对象 属于类型 ServiceReference.GetRechargeInfoListResponseBody 时出现错误。
读取 XML 数据时,超出最大字符串内容长度配额 (8192)。
通过更改在创建 XML 读取器时所使用的 XmlDictionaryReaderQuotas 对象的

解决方法:在webconfig配置文件里添加 readerQuotas 节点(属性值的大小可根据自己的业务来定)

<binding name="Basicbindings" maxReceivedMessageSize="202400000">

<readerQuotas maxDepth="64" maxStringContentLength="524288"
             maxArrayLength="32768" maxBytesPerRead="8192" maxNameTableCharCount="32768" />
</binding>

摘录msdn文档:https://msdn.microsoft.com/zh-cn/library/ms731325.aspx

特性

描述

maxArrayLength

一个正整数,指定 Windows Communication Foundation (WCF) 从客户端接收的数据的最大允许数组长度。 默认值为 16384。

maxBytesPerRead

一个正整数,指定每项读取操作返回的所允许的最大字节数。 默认值为 4096。

maxDepth

一个正整数,指定每项读取操作的最大嵌套节点深度。 默认值为 32。

maxNameTableCharCount

一个正整数,指定表名称中允许的最大字符数。 默认值为 16384。

maxStringContentLength

一个正整数,指定 XML 元素内容中允许包含的最大字符数。 默认值为 8192。

 
原文地址:https://www.cnblogs.com/for917157ever/p/4598565.html