2012-03-30 80 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