C# 将远程SQL Server数据库与本地SQL Server Compact数据库同步的最佳方法?

C# 将远程SQL Server数据库与本地SQL Server Compact数据库同步的最佳方法?,c#,sql,sql-server,web-services,sql-server-ce,C#,Sql,Sql Server,Web Services,Sql Server Ce,我意识到这是一个经常讨论的话题,但我看到的所有建议似乎都涉及直接访问SQL Server,这在我们的例子中并不理想 我们的场景是一个包含(比如)100个表的远程SQL Server数据库。我们正在开发一个轻量级桌面应用程序,它将使用SQL Server Compact数据库,并定期将(比如)20个表的子集与远程服务器同步 我想控制复制是如何发生的,因为速度是我们的一个主要问题,因为远程服务器距离我们1000英里 此外,我不需要同步每个表中的所有记录——只同步与每个用户相关的记录 我非常喜欢这个工

我意识到这是一个经常讨论的话题,但我看到的所有建议似乎都涉及直接访问SQL Server,这在我们的例子中并不理想

我们的场景是一个包含(比如)100个表的远程SQL Server数据库。我们正在开发一个轻量级桌面应用程序,它将使用SQL Server Compact数据库,并定期将(比如)20个表的子集与远程服务器同步

我想控制复制是如何发生的,因为速度是我们的一个主要问题,因为远程服务器距离我们1000英里

此外,我不需要同步每个表中的所有记录——只同步与每个用户相关的记录

我非常喜欢这个工具,但是它需要客户端连接到远程SQL Server。目前这是不可能的,我们正在考虑通过应用程序或其他方法访问的web服务与远程服务器进行接口

欢迎任何建议

更新


请澄清,internet连接将是间歇性的,这是我们需要同步这两个数据库的主要原因。

事实上,您正在为客户端使用compact db,这给您在这种情况下的可用选项带来了很大的限制

考虑到所需的限制和性能要求,可以考虑实现基于服务的HTTP端点以保持所需的表同步。如果您的体系结构允许它,那么异步地这样做将显著提高性能,但同样,根据您的体系结构,它甚至可能不可行

需要考虑的是使用Web套接字,而不是像上面提到的Web服务那样使用标准HTTP连接。这样,您就可以保持客户端实时同步,因为web套接字是真正的全双工实时连接。主要的捕获是,您必须确保所有客户端都是Web套接字兼容的,或者提供一个倒退来模拟一个与不符合标准的客户端的仿真框架的WebSocket连接。


不确定这是否有帮助。

您不能使用MS Sync框架吗

非常适合你的场景

快速谷歌打开了这个教程


您可以选择同步框架(需要更多的编码并有一些其他限制)或合并复制,两者都可以通过http/https工作)-请参阅此博客文章以获得比较:

MS Synch框架可以通过http使用吗?我认为它需要直接链接到这两个数据库?我相信是这样,根据这里的答案: