2011-12-15 73 views
0

我开始我的WCF服务是这样的:WCF启动的net.tcp服务通过互联网

host = new ServiceHost(typeof(Host), new Uri("net.tcp://127.0.0.1:40000")); 
host.AddServiceEndpoint(typeof(IHost), new NetTcpBinding(), ""); 
host.Open(); 

和客户端应用程序连接到它:

IProxy proxy = new DuplexChannelFactory<IProxy>(callback, new NetTcpBinding(), new EndpointAddress("net.tcp://127.0.0.1:40000")).CreateChannel(); 

它工作正常。我可以连接到服务器并交换数据。问题是我如何启动这项服务(服务器),以便我的网络外部的计算机可以通过互联网连接到它?

回答

0

确保没有个人防火墙,如果您位于路由器/代理之后,请确保已启用端口转发或将您的服务器设置为DMZ。如果服务器有一个动态IP,最好将它分配给一个静态的IP地址,以便计算机重新启动(无论出于何种原因)不会在稍后的日期混淆设置。

基本上,阻止任何允许传入连接不能看到服务器和托管该服务的端口的内容。显然,所有这些都伴随着对安全性的某些期望,并确保你不会让自己容易受到伤害。 (关键是让最低限度的工作完成 - 不多或少)。

2

您需要将IP地址从环回(127.0.0.1)更改为您的外部IP地址(通过www.whatismyip.com查找)。

然后,如果您在防火墙后面,则需要允许端口40000通过。如果您在路由器后面,则需要将端口40000转发到本地IP地址(打开命令提示符并键入ipconfig - 您将在该端口找到它)。

之后,您需要更改客户端连接字符串与外部IP地址。