C# 当所有设置都处于最大值时,已超过传入消息(65536)的最大消息大小配额
对web服务的调用将返回以下消息: System.ServiceModel.CommunicationException:已超过传入消息的最大消息大小配额(65536)。要增加配额,请在相应的绑定元素上使用MaxReceivedMessageSize属性 我错过什么了吗?我相信我正在将所有相关的WCF消息大小参数设置为它们的最大可能值。我在客户端(调用web服务的web应用程序)和web服务本身中都有下面的设置 在这两个配置文件中,这是唯一定义的绑定,并且客户端和服务端点中所选的绑定都具有以下属性:C# 当所有设置都处于最大值时,已超过传入消息(65536)的最大消息大小配额,c#,asp.net,wcf,wcf-binding,C#,Asp.net,Wcf,Wcf Binding,对web服务的调用将返回以下消息: System.ServiceModel.CommunicationException:已超过传入消息的最大消息大小配额(65536)。要增加配额,请在相应的绑定元素上使用MaxReceivedMessageSize属性 我错过什么了吗?我相信我正在将所有相关的WCF消息大小参数设置为它们的最大可能值。我在客户端(调用web服务的web应用程序)和web服务本身中都有下面的设置 在这两个配置文件中,这是唯一定义的绑定,并且客户端和服务端点中所选的绑定都具有以下属
binding="netTcpBinding"
绑定标记包含:
<netTcpBinding>
<binding name="netTcpBinding"
maxBufferSize="2147483647"
maxBufferPoolSize="2147483647"
maxReceivedMessageSize="2147483647">
<readerQuotas maxDepth="2147483647"
maxStringContentLength="2147483647"
maxArrayLength="2147483647"
maxBytesPerRead="2147483647"
maxNameTableCharCount="2147483647" />
...
<serviceBehaivors...behavior>
<dataContractSerializer maxItemsInObjectGraph="2147483647" />
写入屏幕的值是“443235”,我猜这是wcf消息的大致大小。我不知道这个错误是从哪里来的,也不知道如何阻止它发生,我们非常感谢您的建议。您需要使用
端点
元素中的bindingConfiguration
属性,并为其指定适当的绑定配置的名称。Allbinding
告诉端点要使用什么类型的绑定,如果没有相关的bindingConfiguration
它将使用绑定的默认值
因此,在端点中,您可以执行以下操作:
<endpoint address=""
binding="netTcpBinding"
bindingConfiguration="netTcpBinding"
contract="IMyService" />
现在,您的端点将获取您在名为“NetTcpBinding”的配置部分中为
NetTcpBinding
协议定义的值。您在客户端对WCF进行的配置是适当的,但在WCF服务端配置上不合适,因为您必须在服务端配置上使用自定义绑定来覆盖readerQuotas的默认设置或其他此类类型设置来覆盖服务端默认设置
创建自定义绑定并将WCF服务端配置指向自定义绑定
<endpoint address=""
binding="netTcpBinding"
bindingConfiguration="netTcpBinding"
contract="IMyService" />