我遇到这个问题的原因是:我使用asp.net 网站调用wcf服务后,通过方法提交数据产生的。我提交的数据是一个实体,包含很多字符串和图片格式的二进制数据超过4M 就报个错误。
后来同事帮忙解决了。他说是因为wcf服务的配置文件有问题, 一般情况下,我们新建wcf都使用默认wcf配置,所以都是 basicHttpBinding ,而刚好,默认wcf传送的大小有限制的是4M,所有超出了就报错。解决办法是:
修改默认绑定协议:
<!--如果没有设置,将采用wcf默认机制,这里设置或改变默认绑定设置-->
<protocolMapping>
<remove scheme="http"/><!--移除原有默认绑定 (bascHttpBinding)-->
<add scheme="http" binding="wsHttpBinding" bindingConfiguration="BaseWsBinding"/><!--添加新的默认绑定协议 wsHttpBinding ->
</protocolMapping>
加上以上配置后,就可以了。
我就是因为没有加上以上的配置,所有不管你配置什么协议,都采用默认的,不管你改maxReceivedMessageSize 多大都不行,因为服务端始终采用默认大小。