• WCF常见异常-The maximum string content length quota (8192) has been exceeded while reading XML data


    异常信息:The maximum string content length quota (8192) has been exceeded while reading XML data

    问题:调用第三方的WCF服务,产生上述异常信息

    分析:

    在公布WCF host端时,要确保host端以及客户端的设置允许一定大小的数据传输。

    如果未设置传输大小,maxStringContentLength默认大小为8192。

    1)如果第三方服务未设置maxStringContentLength或者设置的maxStringContentLength小于我们调用第三方WCF服务返回的传输信息,则会产生上述异常。

    这种情况,我们可以联系第三方将maxStringContentLength的值设置大一些。

    2)如果调用方未设置maxStringContentLength或者设置的maxStringContentLength小于我们调用WCF服务返回的传输信息,也会产生上述异常。

    这种情况只需在我们的配置文件中将maxStringContentLength修改为合适的大小即可

    解决方案:

    首先,确定是客户端还是host端的限制。如果是客户端的限制,在客户端修改;如果是host端(自己项目的或者第三方的)的限制,在host端修改

    然后,修改配置文件:

    <binding name="服务endpoint节点对应的bindingConfiguration值" openTimeout="00:05:00" receiveTimeout="00:05:00" sendTimeout="00:05:00" allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard" maxBufferSize="655360000" maxBufferPoolSize="5242880000" maxReceivedMessageSize="655360000" messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered" useDefaultWebProxy="true">
        <readerQuotas maxDepth="320" maxStringContentLength="655360000" maxArrayLength="163840" maxBytesPerRead="40960" maxNameTableCharCount="163840" />
        <security mode="None">
            <transport clientCredentialType="None" proxyCredentialType="None" realm="" />
            <message clientCredentialType="UserName" algorithmSuite="Default" />
        </security>
    </binding>

    代码:maxStringContentLength="655360000" ,需要根据WCF服务传输信息的长度自行设置。

    如果认为此文对您有帮助,别忘了支持一下哦!

    作者:竹影清风
    声明:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。如有问题或建议,请多多赐教,非常感谢。
  • 相关阅读:
    重启机器导致mysql启动失败
    setTimeout 的方式实现 setInteval
    4.1 k8s-pod的基本操作
    Git
    leetcode -1
    面试-总结
    网络基础
    问题总结
    Notepad++安装
    Django 使用Form组件完成登录注册
  • 原文地址:https://www.cnblogs.com/cunlau/p/4211838.html
Copyright © 2020-2023  润新知