繁体   English   中英

WCF通过互联网启动net.tcp服务

[英]WCF start net.tcp service over internet

我像这样启动我的WCF服务:

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();

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

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM