Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 将数据从多个客户端同步到服务器(SQL)_Asp.net_Sql_Wcf_Sync - Fatal编程技术网

Asp.net 将数据从多个客户端同步到服务器(SQL)

Asp.net 将数据从多个客户端同步到服务器(SQL),asp.net,sql,wcf,sync,Asp.net,Sql,Wcf,Sync,我的同步功能需要同步来自多个客户端SQL server的数据,根据服务器上的业务规则修改数据,然后将数据加载到server SQL数据库中 我当前的解决方案是作为计划任务运行的控制台应用程序,它比较创建和修改的记录时间戳,并生成需要更新或从客户端插入到服务器的实体对象 虽然这种方法似乎有效,但我担心的是冲突管理,或者同步期间WCF服务的中断会导致数据冲突。我必须克服的一个想法是快照,然后基于该快照进行同步,如果同步完成,则删除快照并使用上次成功导入日期更新服务器数据库 我已经研究过同步框架,但发

我的同步功能需要同步来自多个客户端SQL server的数据,根据服务器上的业务规则修改数据,然后将数据加载到server SQL数据库中

我当前的解决方案是作为计划任务运行的控制台应用程序,它比较创建和修改的记录时间戳,并生成需要更新或从客户端插入到服务器的实体对象

虽然这种方法似乎有效,但我担心的是冲突管理,或者同步期间WCF服务的中断会导致数据冲突。我必须克服的一个想法是快照,然后基于该快照进行同步,如果同步完成,则删除快照并使用上次成功导入日期更新服务器数据库

我已经研究过同步框架,但发现很少有多个客户端到一个服务器设置的例子。sync的另一个问题是,我不希望更改任何客户机DB表模式。是否有来自客户端数据库的只读示例?或在客户端或服务器端修改数据时的SQL-SQL示例

以下是我用来生成需要更新或插入到服务器数据库中的实体对象列表的客户端代码供参考

 Public Function GetNew(ByVal StarTime As DateTime, ByVal EndTime As DateTime, ByVal ChunkSize As Integer, ByVal Offset As Integer) As List(Of myEntity.person) Implements myWCFService.GetNew
    Dim db As New myEntity.DBContext
    Dim z As List(Of INextGen.person) = (From p In db.people Where p.create_timestamp >= StarTime And p.create_timestamp <= EndTime Order By p.create_timestamp Descending Skip Offset Take ChunkSize).ToList()
    Return z
    db.Dispose()
    db = Nothing
End Function

Public Function GetChanged(ByVal StarTime As DateTime, ByVal EndTime As DateTime, ByVal ChunkSize As Integer, ByVal Offset As Integer) As List(Of myEntity.person) Implements myWCFService.GetChanged
    Dim db As New myEntity.DBContext
    Dim z As List(Of INextGen.person) = (From p In db.people Order By p.modify_timestamp >= StarTime And p.modify_timestamp <= EndTime Order By p.modify_timestamp Descending Skip Offset Take ChunkSize).ToList()
    Return z
    db.Dispose()
    db = Nothing
End Function
公共函数GetNew(ByVal StarTime作为DateTime,ByVal EndTime作为DateTime,ByVal ChunkSize作为整数,ByVal Offset作为整数)作为列表(myEntity.person)实现myWCFService.GetNew Dim db作为新的myEntity.DBContext
Dimez作为列表(InExtEng.Lead)=(从P.CytEyTimePayto>StPoT和P.CealEyTimePayto= StalTimes和P.MeffFyyTimePays

中的P.P.人们可能想考虑使用微软同步框架2.1。

数据库同步提供程序是Microsoft®Sync Framework的一部分。Sync Framework是一个全面的同步平台,使开发人员能够向应用程序、服务和设备添加同步功能。Sync Framework解决了如何使用任何协议在任何存储中同步任何类型的数据的问题同步框架的基本功能是支持任何类型的端点(如设备到桌面、设备到服务器等)之间的脱机和数据协作

参考文献:


我调查了一下,这不是一个真正的同步,在将数据插入到我的服务器SQL之前,我需要对来自客户端SQL的数据进行处理。这似乎不是我想要做的事情的合适工具。出于价值考虑,同步框架包括用于构建各种自定义提供程序的托管和非托管APIhat可在框架内实现更大的同步控制。致以最诚挚的问候。应用程序的需求之一是1台服务器,多个客户端关系。这样,我可以有3个客户端数据库,每个数据库包含一个“Person”表,我需要将其与我的服务器表同步。为了跟踪记录,我使用我的WCF模型分配了一个客户端ID。似乎sync对此没有太多支持?另一个限制是我对客户端表只有只读访问权限。