【问题标题】:WCF Service error "Maximum message size quota for incoming message as been exceeded"WCF 服务错误“已超出传入消息的最大消息大小配额”
【发布时间】:2020-05-20 13:57:42
【问题描述】:

我有一个 WCF 服务库项目,它从数据库中请求一个大型记录集并将其返回。每次在 WCF 测试客户端中都会弹出此错误。我将 MaxReceivedMessageSize 更改为一个很大的值,但它似乎没有接受它。这里是 Web.Config

 <client>
  <endpoint address="http://localhost:8000/SAPIntranet" binding="basicHttpBinding"
    bindingConfiguration="Binding_SAPIntranet" contract="SAPIntranet"
    name="SAPIntranet" kind="" endpointConfiguration="" />
</client>
<bindings>
  <basicHttpBinding>
    <binding name="Binding_SAPIntranet" openTimeout="00:02:00" maxBufferPoolSize="20000000"
      maxBufferSize="20000000" maxReceivedMessageSize="20000000">
      <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
        maxBytesPerRead="4096" maxNameTableCharCount="16384" />
    </binding>
  </basicHttpBinding>
</bindings>

错误消息总是给出默认值 (65535)。 我想我做错了什么,但无法弄清楚。

感谢您的时间和帮助

【问题讨论】:

  • This 我的问题可能会有所帮助。

标签: vb.net web-services wcf wcf-binding


【解决方案1】:

MaxReceivedMessageSize 设置在服务器端生效,我们应该在服务端点上应用绑定配置。上述配置仅适用于客户端服务端点。请参考以下服务配置。

  <services>
    <service name="WcfService1.Service1">
      <endpoint address="" binding="basicHttpBinding" bindingConfiguration="mybinding" contract="WcfService1.IService1">
      </endpoint>
      <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"></endpoint>
    </service>
  </services>
  <bindings>
    <basicHttpBinding>
      <binding name="mybinding" maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647">
        <readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647"
          maxArrayLength="2147483647" maxBytesPerRead="2147483647" />
      </binding>
    </basicHttpBinding>
  </bindings>

如果有什么我可以帮忙的,请随时告诉我。

【讨论】:

  • 感谢您的回复。我已经尝试过了,它也不起作用,仍然有相同的错误消息。
  • 我想知道服务器端的完整配置,你介意发布一下吗?此外,在我看来,您的配置仅适用于客户端,而不适用于服务器端。
猜你喜欢
  • 2014-02-01
  • 1970-01-01
  • 2013-11-03
  • 2014-10-23
  • 2015-04-02
  • 2020-03-18
  • 1970-01-01
  • 1970-01-01
  • 2014-06-24
相关资源
最近更新 更多