我有一个Web服务,第三方使用它来访问我工作的公司的各种功能。此Web服务正在使用公司内的其他Web服务发送电子邮件,这是我们在特别长的电子邮件中收到的错误 - “读取XML数据时已超出最大字符串内容长度配额(8192)。”
我已经阅读了问题和答案here,但没有运气。我已经修改了我的web.config文件的basicHttpBinding元素上的readerQuotas,我仍然收到此错误。修改服务器(我正在调用的Web服务所在的位置)是不行的,因为使用该服务的任何其他客户端都不会发生此问题,这是在企业环境中。我能够使用完全相同的内容,在我自己的服务之外调用此服务,并取得成功。就在我正在调用我的服务时调用电子邮件服务时出现错误。
有人有任何建议吗?我处于停滞状态,我厌倦了抨击我的头。我现在唯一想到的是修改电子邮件服务的配置文件,但公司内部只有一个,而且它是一个生产服务,因此几乎不可能只是测试并看看这是否能解决我的问题。
谢谢,
T.J。
编辑:相关配置部分
客户端
<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>
服务器
继续努力。我没有任何访问权限。
答案 0 :(得分:0)
是否有可能以编程方式覆盖配置设置,或者您是否尝试过以编程方式设置它们?只是一个想法。
答案 1 :(得分:0)
我找到了我的解决方案,它是here。我深深地想到它是在我的服务和我正在呼叫的服务之间,当它实际上是完全分开的时候。我的服务没有设置为处理那么久的消息。链接帖子中的最佳答案包含了引导我的信息 - 即服务器反序列化数据,而客户端读取数据。我的错误是围绕反序列化数据,这意味着我的服务器就是问题。我在我的服务的绑定元素中扩展了readerQuotas的长度,问题解决了。