2012-03-30 34 views
0

我正在创建一个wpf应用程序,它将安装在同一网络中的多台计算机上。该应用程序应该与其他应用程序交谈,因此我正在应用程序中实施WCF服务。一切都很好,没有防火墙。因此,我只是缺少一些代码,以便向防火墙添加例外。获取wcf服务的exe完整路径

要异常添加到防火墙一个程序我在CMD执行下面的代码(或者在C#中的过程)

netsh防火墙添加allowedprogram“C:\ users..etc \ myProgram。 exe“MyProgram ENABLE

问题是我不知道什么exe文件托管我的服务!我希望能够找到答案,以便我可以添加防火墙例外。

回答

0

我想我唯一的选择是打开防火墙的端口。我认为这根本不安全。做到这一点的方法是:

以便第一删除它,以避免重复:

的netsh advfirewall防火墙删除规则名称=“描述放这里” DIR =在协议= TCP将localPort = 8732

然后添加:

的netsh advfirewall防火墙添加规则名称= “说明放这里” DIR =在行动=允许协议= TCP将localPort = 8732

现在每个人都可以使用该端口进行通信...

0

取决于您如何设置它。通过使用命名管道的可执行文件可以使用WCF。但是,从这里看,你通过IIS托管它。部署时,不会有“exe”。

相反,您的项目会生成一个“dll”。这个DLL将被加载到现有的IIS进程中并在应用程序池中运行。此应用程序池将在Web服务器(IIS)下运行,并且根据您的配置可能会在HTTP或HTTPS下运行。

HTTP在端口80下运行,而HTTPS在端口443(SSL)下运行。

+0

感谢您的帮助。我没有使用IIS。我正在使用WCF类库,并且每当启动我的wpf应用程序时服务就开始运行,因为我从我的wpf应用程序向我的WCF类库添加了引用 – 2012-03-30 20:48:23

+0

如果您不使用IIS,则需要使用'ServiceHost'在你自己的可执行文件中实际启动服务。您似乎指的是从调试器运行[WCF服务主机](http://msdn.microsoft.com/zh-cn/library/bb552363.aspx)中的服务,该服务不是服务的选项生产。 – shambulator 2012-03-30 21:17:57