WCF REST - 超出了maxMessageSize

时间:2014-12-10 12:37:26

标签: wcf wcf-rest

以下是配置文件的一部分:

<services>
  <service name="MMC.API2.MMCApi" behaviorConfiguration="restBehaviorConfig">
    <endpoint address="" binding="webHttpBinding" contract="MMC.API2.IMMCApi" behaviorConfiguration="web" bindingConfiguration="LargeData">
    </endpoint>
    <host>
      <timeouts openTimeout="01:20:00" closeTimeout="01:20:00" />
    </host>
  </service>
</services>

...

     <webHttpBinding>
        <binding name="LargeData" maxBufferPoolSize="2147483647" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647">
          <readerQuotas maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxDepth="32" maxNameTableCharCount="2147483647" maxStringContentLength="2147483647"/>
        </binding>
      </webHttpBinding>

问题:

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

2 个答案:

答案 0 :(得分:0)

看起来很正常。你可以尝试改变这样的行为配置;

  <serviceBehaviors>
    <behavior name="web">
      <dataContractSerializer ignoreExtensionDataObject="true" maxItemsInObjectGraph="2147483647" />
      <serviceDebug includeExceptionDetailInFaults="true" />
      <serviceTimeouts transactionTimeout="00:10:00" />
      <serviceThrottling maxConcurrentCalls="200" maxConcurrentSessions="100"
        maxConcurrentInstances="100" />
    </behavior>
  </serviceBehaviors>

答案 1 :(得分:0)

服务绑定配置的片段似乎设置正常,因此您可能需要查看客户端的绑定配置,以确保它们具有readerQuotas和maxBuffer *设置的类似设置。

注意:
您可能希望提供有关整体环境/配置的更多信息 如果您还没有,启用WCF跟踪日志记录可以帮助您确定问题。