我编写了一个Windows应用程序,它将数据本地存储在SQL Server Express数据库中。它由来自远程位置的多个人使用,他们需要偶尔同步他们的数据。它需要一个只有少数几个表的相当简单的同步过程,我现在正在通过使用链接服务器将每个SQL Express安装链接到“中央”SQL Server来完成此任务。然后,我根据需要对远程数据运行查询并添加/更新/删除。这非常有效。
但是,我正在艰难地使用VPN连接来实现这一目标。在开始同步过程之前,用户首先要做的是与服务器建立VPN连接(在Windows 2003上运行RRAS)。它在大多数情况下运行良好,但是我遇到了许多令人烦恼的问题,例如如果连接不稳定则VPN掉线,通常AT& T蜂窝连接无法建立VPN连接(远程用户有时必须使用此功能)方法),一个用户在家中有两台机器,由于路由器的限制,在给定时间只有一台机器可以有VPN连接。有些人运行XP,其他Vista ......这真的很痛苦,而VPN片对我和用户来说都是非常令人沮丧的。
我有什么相当简单的选项可以忽略吗?我的第一个想法是使用Web服务,但这需要通过Web服务将所有数据传递到服务器进行处理。那不切实际。另一个想法是在服务器上安装第二个SQL Server Express实例,让它在另一个端口上侦听,然后直接连接到这个而不是通过VPN连接(我甚至不确定它是否适用于SQL Express。它会不会?)。我知道这有安全隐患,但多少呢?这些数据本质上不是保密的,也不是关键任务。是否可以通过最少量的工作/学习来完成更好的选择?
提前感谢您提出的任何建议。
Darvis
答案 0 :(得分:1)
Service Broker怎么样?您将更新保留在XML有效负载中,使用SEND上传更改,消息activates后端的过程,它将XML有效负载恢复到表更新中。您可以在DMZ上放置一个Express实例作为网关,并依赖内置的Message Forwarding。由于Service Broker可以使用certificates for authentication,因此不需要VPN。此外,您还可以解决可用性问题,只要有连接,就会对更新进行排队等待。
答案 1 :(得分:0)
提供一个封装器,用SSL封装网络连接。
答案 2 :(得分:0)
您可以将包含数据的电子邮件用作附件。您可以使用自动代理处理服务器上的电子邮件。以其他方式分发更新可能会更加困难 - 您的用户必须保存附件,然后运行本地导入程序。加上他们决定这样做的时间问题可能很难解决。但根据您的用户群,它可能会更好。