2016-09-29 179 views
0

我有3個自己託管的WCF Windows服務通過http端口80使用基本http綁定進行通信。在同一臺機器上,我有一個網站(也運行在默認端口80上)託管在IIS中,該網站還管理這些服務並與之通信。一切工作正常在這臺Windows 10託管機器,即網站可以談到服務和服務可以相互交談。由Windows 10防火牆阻止WCF http服務

當我嘗試從網絡上的另一臺PC訪問網站時,我在瀏覽器中收到一條消息,說'服務器DNS地址找不到'。我甚至無法訪問WCF服務元數據網址。

這看起來像主機上的防火牆問題,所以我添加了TCP端口80的入站和出站規則,並確保規則的萬維網服務(HTTP Traffic-In)和萬維網服務(HTTPS Traffic-In)'已啓用。這些變化都沒有工作,所以我刪除了我添加的TCP規則。

最後,我完全禁用了防火牆,並且能夠從另一臺PC訪問網站。但是,當我重新啓用防火牆時,該網站繼續工作,突然間我的WCF元數據也可以訪問! 我不明白爲什麼會發生這種情況。我已經多次成功地重新創建了這個問題。

任何人都可以提供解釋或建議任何其他防火牆規則來嘗試?

我的最終目標是將服務和網站打包成安裝程序,所以我不希望我的最終用戶不得不亂用防火牆。他們甚至可能無法將其關閉並再次打開。

很多謝謝

回答

0

對於http的端口80的出站規則怎麼樣?

+0

已經嘗試過。爲TCP 80添加入站和出站規則也會影響http。 – HomeAlone

0

終於明白了。我用來訪問託管機器的網址使用了機器名稱。爲了使機器響應名稱查找,需要爲公共配置文件啓用名爲「網絡發現(NB-Name-In)」的防火牆規則。此規則允許UDP端口137上的流量。一旦名稱查找已被緩存,URL將被正確路由。這解釋了爲什麼它在我禁用之後起作用,然後再次啓用防火牆。