我正在尝试向WCF服务方法发送大约50个元素的数组,但我总是收到(404) Bad Request
错误。
我认为它与消息大小或类似的东西有关,因为如果我发送一个空数组就可以了。
我做了一些研究并在WCF的web.config中添加了一些内容,但我仍然无法让它工作。
任何人都可以提供一些额外的信息,告诉我如何增加我可以发送的邮件的大小?
[更新]解决方案:
答案 0 :(得分:2)
愚蠢,愚蠢的我:(
问题是我在web.config中创建了绑定配置,如:
<bindings>
<wsHttpBinding>
<binding name="netTcpBindingConfig" closeTimeout="00:10:00" openTimeout="00:10:00" receiveTimeout="00:10:00" sendTimeout="00:10:00" transactionFlow="false" hostNameComparisonMode="StrongWildcard" maxBufferPoolSize="524288" maxReceivedMessageSize="6000000">
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="6000000" maxBytesPerRead="4096" maxNameTableCharCount="16384" />
</binding>
</wsHttpBinding>
</bindings>
但后来我没有将配置应用到端点!所以,我不得不将其添加到端点标记:
bindingConfiguration="netTcpBindingConfig"
现在它就像一个魅力。
答案 1 :(得分:0)
这是一个显而易见的问题,但您是否尝试将MaxReceivedMessageSize设置为65536并查看它是否仍然失败?
答案 2 :(得分:0)
您的服务主机应配置为接收大量数据,如果没有,则将其丢弃至服务级别。
创建绑定时设置邮件大小:
return new NetTcpBinding(SecurityMode.None, true)
{
MaxReceivedMessageSize = 99999999,
ReaderQuotas = { MaxArrayLength = 99999999 }
};