2015-11-06 38 views
-1

我正在創建簡單的應用程序,它應該與託管服務進行通信。應用程序非常簡單,您可以在任何WCF服務教程中找到此類教程,並使用一個服務客戶端連接到服務。我使用的端點程序使用端口80,但它不應該

http://localhost:6480/DentalDesktop/ServerAgentService

服務,所以,按照我的理解,應用程序只能使用6480端口(這是所有規則等開)。 但是,一旦我試圖啓動應用程序,它會拋出異常,該端口80已被其他應用程序使用。一些調查顯示,這是Skype使用端口80.

但是,我不明白爲什麼我的應用程序使用端口80。唯一的客戶服務使我們使用另一個端口。這是由WCF應用程序的某個默認連接引起的還是什麼?

+0

http://stackoverflow.com/questions/8514766/how-to-run-wcf-service-on-a-specific-port –

回答

0

那麼,我可以說...不要使用http或tcp從你自己的機器連接到你的服務器。 net.pipe工作完美,沒有任何端口。

0

端口80是HTTP端口,由瀏覽器用於非安全流量。

你可以提供你正在創建的App類型的更多細節。它是一個網站,WPF應用程序,服務等。

+0

從技術上講,它是WinForms應用程序。它用於通過雙工回調(WSDualHttpBinding)與服務進行通信,並根據它啓動一些托盤圖標相關操作。 – lentinant

+0

你可以發佈你必須致電該服務的代碼嗎? –

0

下面是我如何使用iptables在虛擬機上進行端口轉發工作。首先,您必須啓用端口轉發,然後設置爲PREROUTING鏈的規則:

sudo sysctl -w net.ipv4.ip_forward=1 
sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 3000 

如果你想重定向本地主機的流量使用這個代替:

sudo iptables -t nat -A OUTPUT -d localhost -p tcp --dport 80 -j REDIRECT --to-port 3000 

這些例子路由流量從80端口端口3000.

+0

通過配置Skype不使用端口80和443,可以輕鬆解決端口問題。問題更多地是,爲什麼我的程序使用此端口。 – lentinant

+0

它使用程序員分配給它的端口。前1024個端口受到慣例的限制,在此之上,您可以選擇希望服務偵聽的端口號。端口號碼只是數字。例如,大家都同意80端口應該是HTTP端口,這就是爲什麼人們繼續使用80端口來訪問HTTP的原因。 –

相關問題