[websevices查询结果时报错] 读取 XML 数据时,超出最大字符串内容长度配额 (8192)XmlDictionaryReaderQuotas 对象的 MaxStringContentLe

报错信息:

 读取 XML 数据时,超出最大字符串内容长度配额 (8192)。通过更改在创建 XML 读取器时所使用的 XmlDictionaryReaderQuotas 对象的 MaxStringContentLength 属性,可增加此配额

原因:

引用webservices后在app.config生成了配置,但没有MaxStringContentLength 属性,默认成了8192,当查询XML字符较长时,就会报此错,综合了网上的一些信息,要对自己环境的app.config中内容进行修改,不能直接复制网上代码,因为webservices名称不同

我原来的配置文件是:

    <binding name="AdiconWebServiceSoap" closeTimeout="00:10:00"
     openTimeout="00:10:00" receiveTimeout="00:10:00" sendTimeout="00:10:00"
     allowCookies="false" bypassProxyOnLocal="false" maxBufferPoolSize="524288"
     maxReceivedMessageSize="2024000000" useDefaultWebProxy="true" />

需要修改成:注意“XXXXWebServiceSoap”是你自己的名称

    <binding name="XXXXWebServiceSoap" closeTimeout="00:10:00"
     openTimeout="00:10:00" receiveTimeout="00:10:00" sendTimeout="00:10:00"
     allowCookies="false" bypassProxyOnLocal="false" maxBufferPoolSize="524288"
     useDefaultWebProxy="true" >
    <readerQuotas maxStringContentLength="10485760" />
 </binding>

其它完整的参数:

    <binding name="XXXXWebServiceSoap" maxReceivedMessageSize="10485760">
    <readerQuotas maxDepth="32" maxStringContentLength="10485760" maxArrayLength="10485760" maxBytesPerRead="10485760" maxNameTableCharCount="10485760"/>
    </binding>

奇怪的问题是同样的代码配置,不同电脑,有的电脑没加这个参数运行也正常,可能和其它环境变量有关。

参考资料:

【C#】解决进行反序列化时出错:。InnerException 消息是“反序列化对象 属于类型 System.String 时出现错误。读取 XML 数据时,超出最大字符串内容长度配额 (8192)。_c# exception 不能反序列化_JimCarter的博客-CSDN博客

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值