2015-11-06 33 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的原因。 –

相关问题