防火墙阻止wcf lan客户端

时间:2010-08-12 14:25:14

标签: c# wcf

我在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>

3 个答案:

答案 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配置中,您无法绕过主机上的防火墙。如果您绑定的端口被阻止,那么任何数据都不会到达终点。