如果您遇到如题所示异常提示,恭喜您找对地方了!
出现这种问题一般是由WCF的安全机制导致的,这种情况一般只会出现在NetTcpBinding的情况下,你会发现将WCF服务与本机置于同一台机上,无论客户端采用哪种方式(iis,VS自带的WEB服务器、ConsoleApplication、WinForm),都不会有问题,但是当把WCF服务部署在局域网内某台机器上,然后通过客户端去访问就有问题了,而出问题的情况让人很莫明其妙(IIS访问时出现如题的异常,而VS自带的WEB服务器、ConsoleApplication、WinForm都不会出现异常)。
针对这种情况,解决方法如下:
注:以下的解决办法为禁用WCF连接安全限制,当然你可以设置该Mode为其它类型,同时设置安全验证方式等
1. 配置文件实现
<bindings>
<netTcpBinding>
<binding>
<security mode="None">
</security>
</binding>
</netTcpBinding>
</bindings>
<netTcpBinding>
<binding>
<security mode="None">
</security>
</binding>
</netTcpBinding>
</bindings>
2. 编码实现
NetTcpBinding binding = new NetTcpBinding()
{
ReaderQuotas = new XmlDictionaryReaderQuotas()
{
MaxStringContentLength = 2147483647
},
Security = new NetTcpSecurity()
{
Mode = SecurityMode.None
}
};
{
ReaderQuotas = new XmlDictionaryReaderQuotas()
{
MaxStringContentLength = 2147483647
},
Security = new NetTcpSecurity()
{
Mode = SecurityMode.None
}
};