0

请在搁置之前阅读我的帖子!

首先让我说我整个下午都在寻找解决方案,到目前为止,我已经看到了很多 WCF 示例,但没有一个可以满足我的需要。

我用 c# 开发了一个应用程序,它将安装在客户服务器上并访问客户本地网络上的 sql 服务器。该应用程序还具有控制客户本地网络上的网络中继并在 sql 中记录这些状态的能力。我试图找出一种方法让客户的服务器与我们的数据中心建立连接并能够向客户的服务器发出命令(从 sql 检索数据集,控制网络中继等)。我已经找到了很多在服务器上让客户端调用类的方法,但到目前为止还没有找到相反的方法。一个考虑是编写一个 Web 服务作为客户应用程序的一部分'

4

2 回答 2

0

如果我理解正确,您想从客户的数据库中获取信息,该数据库位于防火墙后面并且没有已知的静态 IP,此外可能有数百个客户,因此为客户提供专用 VPN 是不可行的。

首先:您不应该直接联系客户数据库。数据库不是为这种情况设计的,如果直接暴露在互联网上,可能会受到攻击。因此,您需要在数据库之上提供服务。您可以为此服务使用两个主要选项:

投票服务

该服务实际上是一个客户端调用您网络上的某些 Web 服务并请求指示。
优点:易于实施和部署。
缺点:通过轮询,始终存在可扩展性/带宽使用与服务速度的成本效益。在选择轮询时间时也有一些注意事项,以防止所有客户端同时轮询。

该服务是一个 tcp-server

这可以是通常的 Web 服务(或 RESTfull 服务)或其他一些服务。唯一的区别是它需要为自己做广告。为此,您需要有一个已知的目录服务器。当服务启动时,它连接到目录服务并告诉它可以联系的端口(目录知道连接中的 ip)。然后它需要定期联系目录,让它知道它仍然存在,因此可以检测到 IP 的任何变化。
您网络上的客户端现在将查询目录以查找客户端的地址并直接连接到它以发出命令。

优点:可扩展且带宽高效。
缺点:更难实施。需要防火墙穿越解决方案(UPNP 或防火墙例外)。

于 2013-10-24T01:18:21.320 回答
0

您是否考虑过使用

  • VPN - 虚拟专用网络

或者

  • 在 ADSL 调制解调器上配置端口转发重定向,并使用类似 www.noip.com 的解决方案?
于 2013-10-24T00:39:45.480 回答