【发布时间】:2017-03-01 09:26:24
【问题描述】:
已超出传入邮件的最大邮件大小配额 (65536)。要增加配额,请在适当的绑定元素上使用 MaxReceivedMessageSize 属性。
配置文件中我的部分
<system.serviceModel>
<services>
<service name="RestAPI.RiskEventAPI" behaviorConfiguration="metadataBehavior">
<endpoint address=""
binding="basicHttpBinding"
contract="RestAPI.IRiskEventAPI"/>
<endpoint address="mex"
binding="mexHttpBinding"
contract="IMetadataExchange"/>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="metadataBehavior">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="true"/>
</behavior>
<behavior name="RestAPI.RiskEventAPIBehavior">
<serviceMetadata httpGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="true"/>
</behavior>
</serviceBehaviors>
<endpointBehaviors>
<behavior name="REST">
<webHttp/>
</behavior>
</endpointBehaviors>
</behaviors>
<bindings>
<webHttpBinding>
<binding name="BindingWithMaxSizeIncreased"
maxBufferSize="2147483647"
maxBufferPoolSize="2147483647"
maxReceivedMessageSize="2147483647">
<readerQuotas maxDepth="2147483647"
maxStringContentLength="2147483647"
maxArrayLength="2147483647"
maxBytesPerRead="2147483647"
maxNameTableCharCount="2147483647" />
</binding>
</webHttpBinding>
</bindings>
</system.serviceModel>
令人困惑的是,网络遍地开花,而没有特定于 REST 和 WCF 的内容。调试窗口出现,但我在这个问题的顶部收到错误...
这没有任何影响:
<endpoint address=""
binding="basicHttpBinding"
bindingConfiguration="BindingWithMaxSizeIncreased"
contract="RestAPI.IRiskEventAPI"/>
复制
<webHttpBinding> to <basicHttpBinding> didn't help either
我试过这个...我使用了 wcf 编辑器并添加了一个 mexHttpBinding,但它与 maxBufferSize、maxBufferPoolSize 和 maxReceivedMessageSize 有问题(说它们是不允许的)
<mexHttpBinding>
<binding name="bindingMex"
maxBufferSize="2147483647"
maxBufferPoolSize="2147483647"
maxReceivedMessageSize="2147483647"/>
</mexHttpBinding>
我试过了(也没用):
<endpoint address="mex" binding="mexHttpBinding" bindingConfiguration="IncreasedBindingMaxSize" contract="IMetadataExchange" />
...
<basicHttpBinding>
<binding name="IncreasedBindingMaxSize" maxBufferSize="2147483647"
maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647">
<readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647"
maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" />
</binding>
</basicHttpBinding>
【问题讨论】:
-
在 Visual Studio 本身中调试服务或附加到正在运行的服务实例时会发生这种情况?我之前有过没有在部署位置更新配置的情况,我一直在查看我的 Visual Studio 项目中的值,但没有意识到这不是错误的地方。如果附加,您能否确保您已在部署位置更新了配置?
-
很好的问题 - 客户端配置正在使用 https 并且工作正常,它只是在 Visual Studio 中处于调试模式,我们得到了这个限制......因为它是客户端特定的(机器名称、连接字符串、等)我不能在这里发布...
-
您似乎混淆了rest和wcf。 rest 使用 http 协议,而 wcf 使用 SOAP。还是我在这里遗漏了什么?
-
不,我们很好 - 我们在 Visual Studio 中处于调试模式,它会抛出错误,而 rest 不会......所以我的问题是如何配置调试模式以减轻错误。当您有一个小的结果集(比如 65536 字节时,它会引发此错误。