出现本错误提示的可能有多种,大部分是因为maxBufferSize值没有设置,或者设置过小,再就是安全级别的问题,nettcpbinding会默认使用传输安全,而wshttpbinding会使用消息安全。当你部署出去以后,这个错误也会导致你客户端身份的变化,而无法实例化通道。
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="BasicHttpBinding_ICumService" maxBufferSize="666666666" receiveTimeout="00:03:00" closeTimeout="00:03:00" sendTimeout="00:01:00" messageEncoding="Text" maxReceivedMessageSize="666666666">
<security mode="None">
<transport clientCredentialType="Windows"></transport>
<message clientCredentialType="Certificate"/>
</security>
</binding>
</basicHttpBinding>
</bindings>
<client>
<endpoint address="http://cumwcf.yw82.com/CumService.svc" binding="basicHttpBinding"
bindingConfiguration="BasicHttpBinding_ICumService" contract="MyCumService.ICumService"
name="BasicHttpBinding_ICumService" />
</client>
</system.serviceModel>
简单的说,就是把:maxReceivedMessageSize设置大一些,具体多大,可以根据实际情况设置,能设置的最大值为int.MaxValue,即2147483647。
安全性的问题只要在binding中加
<security mode="None">
<transport clientCredentialType="Windows"></transport>
<message clientCredentialType="Certificate"/>
</security>
就可以了。