c#maxreceivedmessagesize无效

时间:2017-08-26 11:23:25

标签: c# .net web-services wcf web-config

我有这个在我的项目中引用的源服务,在调用它时我收到以下错误:

  

已超出传入邮件的最大邮件大小限额(65536)。要增加配额,请在相应的绑定元素上使用MaxReceivedMessageSize属性

所以我在web配置中修改了我的绑定,如下所示:

<client>
  <endpoint address="MY SERVICE ADDRESS"
    binding="basicHttpBinding" bindingConfiguration="MyBinding"
    contract="MyContract" name="MyImplPort" />
</client>

并在绑定中:

<bindings>
  <basicHttpBinding>
    <binding name="MyBinding" maxBufferPoolSize="2000000000"
      maxBufferSize="2000000000" maxReceivedMessageSize="2000000000"/>
  </basicHttpBinding>
</bindings>
然而,我仍然得到同样的错误 有没有办法解决这个问题?

2 个答案:

答案 0 :(得分:1)

你增加了readerQuotas ??

readerQuotas 定义了可以由配置了绑定的端点处理的SOAP消息复杂性的约束。

像这样:

<binding name="MyBinding" maxBufferPoolSize="2000000000"
      maxBufferSize="2000000000" maxReceivedMessageSize="2000000000">
<readerQuotas maxDepth="32" 
                 maxArrayLength="200000000"
                 maxStringContentLength="200000000"/>
</binding>

答案 1 :(得分:1)

您没有提及在发送请求或接收回复时是否收到此错误。如果在收到回复时,该限制对应于您已设置的客户端。如果您在发送请求时遇到此错误,则此限制位于服务器端,您需要在服务器端增加限制。

这里是example