2012-04-23 72 views
2

我有一個WCF服務被配置爲在netTcpBinding上運行一個高端口號(例如9000)。這一切都可以,但只有客戶端可以訪問該端口上的數據。我們遇到過很多情況,企業防火牆不允許我們在這個端口上連接而沒有太多的痛苦。WCF:如何在端口80上配置net.tcp流量

有沒有一種方法可以將其配置爲在端口80上工作,而不會影響當前在服務器上運行的Web應用程序,以便大多數企業環境不需要更改任何內容?我知道.net tcp port sharing,,但是這不會允許通過net.tcp的端口80。

如果無法通過端口80配置net.tcp,那麼對於這種情況,是否有任何「最佳實踐」來減少防火牆問題?

回答

4

我建議你可以嘗試在大多數防火牆允許的端口8080。 IIS 7.0當前不支持在不同的協議綁定之間共享相同的端口。 因此,同一端口上的HTTP + TCP將不起作用。

+0

感謝您的迴應,並提出了使用8080. Theres沒有理由爲什麼我們使用9000,所以我們可以改變到該端口。 – 2012-04-23 14:26:01

1

你需要確保你綁定到一個特定的ip。通常,當綁定WCF服務時,人們使用0.0.0.0來接受任何ip。如果您在端口80上執行此操作,或者未指定端口,它將覆蓋IIS中的所有現有配置,從而有效地殺死所有正在運行的站點。

要做到這一點的唯一方法是有一個單獨的IP,您可以使用端口80綁定,其他站點不用於連接。

+0

我們的生產服務器有4個IP地址綁定到它,所以我們可以使用IP承載WCF服務的IIS站點。但是,據我所知,你不能在IIS中綁定一個網站,在端口X上使用net.tcp作爲ip地址Y,對嗎? – 2012-04-23 14:25:30

+0

我意外地將WCF服務綁定到http://0.0.0.0,這導致機器將所有用於IIS的流量路由到我們的WCF服務,據我所知,您指定的任何綁定都將覆蓋IIS偵聽數據的IIS 。 – NKCSS 2012-04-23 14:31:04

+0

這就是你在WCF配置中所做的事情,而不是我假設的IIS管理器所做的事情? – 2012-04-23 16:10:57