繁体   English   中英

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

[英]WCF - The maximum string content length quota (8192) has been exceeded while reading XML data

我有一个Web服务,第三方可以使用该服务访问我所工作的公司的各种功能。 该Web服务正在使用公司内的另一个Web服务发送电子邮件,这是我们在特别长的电子邮件中收到的错误-“读取XML数据时,已超出最大字符串内容长度配额(8192)。”

我已经在这里阅读了问题和答案,但是没有运气。 我已经在web.config文件的basicHttpBinding元素上修改了readerQuotas,但仍然收到此错误。 修改服务器(我正在调用的Web服务所驻留的位置)是不行的,因为使用该服务的任何其他客户端都不会发生此问题。 我可以使用完全相同的内容在自己的服务之外调用此服务,并获得成功。 只是在我调用服务的同时调用电子邮件服务时,才会出现错误。

有人有什么建议吗? 我处于停滞状态,厌倦了对此ash之以鼻。 我现在唯一的想法就是修改电子邮件服务的配置文件,但是公司内部只有一个文件,这是一个生产服务,因此几乎无法测试并查看是否可以解决我的问题。

谢谢,

TJ

编辑:相关配置部分

客户

<endpoint address="https://foo.domain/MailService.asmx"
    binding="basicHttpBinding" bindingConfiguration="MailServiceSoap"
    contract="MailService.MailServiceSoap" name="MailServiceSoap" />

<basicHttpBinding>      
    <binding name="MailServiceSoap"  maxReceivedMessageSize="2147483647"
        maxBufferSize="2147483647" openTimeout="00:10:00" receiveTimeout="00:10:00"
        sendTimeout="00:10:00" closeTimeout="00:10:00">
    <readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647"
        maxArrayLength="2147483647" maxBytesPerRead="2147483647"
        maxNameTableCharCount="2147483647" />
    <security mode="Transport">
        <transport clientCredentialType="None" proxyCredentialType="None" realm=""/>
        <message clientCredentialType="UserName" algorithmSuite="Default"/>
    </security>
    </binding>
</basicHttpBinding>

服务器

仍在努力。 我没有访问权限。

您是否有可能以编程方式覆盖配置设置,还是尝试以编程方式设置配置设置? 只是一个想法。

我找到了解决方案,就在这里 我非常想起它是在我的服务和我正在调用的服务之间,而实际上却是完全分开的。 我的服务没有设置来处理消息那么长时间。 链接文章中最重要的答案是让我了解的信息-即服务器反序列化数据,而客户端读取数据。 我的错误是关于反序列化数据的问题,这意味着我的服务器是问题所在。 我在服务的绑定元素中增加了readerQuotas的长度,从而解决了问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM