.net中wcf通信时,出现:无法用于通信,因为其处于“出错”状态。

出现本错误提示的可能有多种,大部分是因为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>
就可以了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值