我在WINDOWS 7操作系统上托管了我的WCF Windows服务,并在Windows-XP PC上安装了客户端应用程序。 WIN-7防火墙阻止我的XP客户端应用程序,当我在Win-7上禁用防火墙时,客户端应用程序运行良好。我怎么能克服这个问题。我对所有基于lan的客户端应用程序使用安全模式=“无”。
客户端配置文件
<system.serviceModel>
<bindings>
<netNamedPipeBinding>
<binding name="NetNamedPipeBinding_IDataService" >
<security mode="Transport">
<transport protectionLevel="EncryptAndSign" />
</security>
</binding>
</netNamedPipeBinding>
<netTcpBinding>
<binding name="NetTcpBinding_IDataService">
<security mode="None">
</security>
</binding>
</netTcpBinding>
</bindings>
<client>
<endpoint address="net.tcp://localhost:8523/DataServices" binding="netTcpBinding"
bindingConfiguration="NetTcpBinding_IDataService" contract="DataServiceReference.IDataService"
name="NetTcpBinding_IDataService" />
<endpoint address="net.pipe://localhost/" binding="netNamedPipeBinding"
bindingConfiguration="NetNamedPipeBinding_IDataService" contract="DataServiceReference.IDataService"
name="NetNamedPipeBinding_IDataService">
</endpoint>
</client>
</system.serviceModel>
答案 0 :(得分:1)
或者,您可以在具有高级安全性的Windows防火墙中的入站规则中添加/启用Windows Communication Foundation Net.TCP侦听器适配器(TCP-In)
答案 1 :(得分:1)
您无需禁用防火墙。您的配置在此处定义了2个端点。虽然net.tcp会被防火墙阻止,但net.pipe不会受到影响。因此,只需在客户端使用NetNamedPipeBinding_IDataService端点即可。
如果由于某种原因这不起作用或客户端不在同一个域(net.pipe的范围),您可以使用wsHttpBinding甚至更简单的basicHttpBinding。这将在端口80上使用Http,如果您的服务器安装了IIS,则最有可能打开它。
答案 2 :(得分:0)
您可以通过禁用防火墙来解决此问题。在WCF配置中,您无法绕过主机上的防火墙。如果您绑定的端口被阻止,那么任何数据都不会到达终点。