Welcome

首页 / 软件开发 / WCF / 关于wcf跨机器访问的问题

关于wcf跨机器访问的问题2015-12-29 cnblogs sysmenu在wcf跨机器的访问中遇到了各种无法访问的问题,本人也是在通过个人解决问题的基础上发表一下自己的经验,如果还有其他方面可能影响wcf跨机器的问题,还希望大家多多发言!

好了废话不多说了,正文如下:

1、设置好wcf的服务端security mode要设置为None,如

<services><service behaviorConfiguration="metadataBehavior" name="Services.CalculatorService"><endpoint address="http://192.168.1.108:9999/calculatorservice" binding="wsHttpBinding"bindingConfiguration="NoneSecurity" contract="Contracts.ICalculator"/></service></services><bindings><wsHttpBinding><binding name="NoneSecurity"><!--maxBufferPoolSize="12000000" maxReceivedMessageSize="12000000" useDefaultWebProxy="false"><readerQuotas maxStringContentLength="12000000" maxArrayLength="12000000"/>--><security mode="None"/></binding></wsHttpBinding></bindings>
这里要注意的是bindingConfiguration="NoneSecurity",<binding name="NoneSecurity">,<security mode="None"/>这三个地方,一定要设好。

然后是客户端中的security mode的设置,如

<binding name="WSHttpBinding_CalculatorService" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00" bypassProxyOnLocal="false" transactionFlow="false" hostNameComparisonMode="StrongWildcard" maxBufferPoolSize="524288" maxReceivedMessageSize="65536" messageEncoding="Text" textEncoding="utf-8" useDefaultWebProxy="true" allowCookies="false"><readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"maxBytesPerRead="4096" maxNameTableCharCount="16384" /><reliableSession ordered="true" inactivityTimeout="00:10:00"enabled="false" /><security mode="None"><transport clientCredentialType="Windows" proxyCredentialType="None" realm="" /><message clientCredentialType="Windows" negotiateServiceCredential="true" /></security></binding>
这里要注意的是<security mode="None">这里也要设置为None,这样在程序运行的时候才不会粗;

最后就是一定要注意把服务端的防火墙关掉,不然也无法卡机器访问,好了就这些,如果还有新的可能导致该问题的情况,还请大家发言!