问题标签 [syncfx]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
121 浏览

silverlight - 识别内存列表中更新项目的最佳方法是什么?

我在 Sync Framework silverlight 项目中将 Siaqodb 用于我的客户端数据库引擎。我已经切换到 siaqodb,因为微软的客户端解决方案一次将整个数据库加载到内存中,因此很难处理大数据。

我已将 SiaqodbOfflineEntity 对象列表绑定到 silverlight 数据网格,以便创建可编辑的数据网格。与微软的解决方案不同,您不能将数据库条目直接绑定到数据网格。您必须查询数据库并将内存对象列表绑定到数据网格。这会导致一个问题,即在更改数据网格单元格时数据库不会立即更新。我试图找到在单元格更改后处理数据库更新的最佳方法。我不能只将每个项目更新到数据库,因为 siaqodb 引擎会将项目标记为脏,即使没有对对象进行任何更改。这将在尝试同步时导致冲突。持有原始列表的缓存版本,然后比较每个对象的每个属性以找出哪些已更改似乎可行,但似乎有点麻烦。我也尝试过查看一些数据网格事件,但 RowEditEnded 在编辑单元格时似乎不会触发,而 CurrentCellChanged 似乎在我切换行时触发(奇数)。

必须有更好的解决方案。有人有想法么?

0 投票
1 回答
700 浏览

microsoft-sync-framework - 同步框架:SimpleSyncProvider 中未处理冲突

我已经实现了一个FullEnumerationSimpleSyncProvider似乎没有处理冲突的方法。

在构造函数中,我设置了以下属性:

我的约束和冲突事件处理程序:

但是,当我在 InsertItem() 中报告冲突时,永远不会调用约束/冲突事件处理程序。

我想在调用同步框架时会在退出RecordConstraintError后调用适当的事件处理程序。InsertItem

任何见解将不胜感激!

0 投票
1 回答
900 浏览

microsoft-sync-framework - 如何使用智能手机同步 SQL 数据库以存储和转发更改?(源和目标之间没有直接连接)

我有一个场景,我偶尔连接的客户端(WPF 应用程序、SQL Express DB)需要与中央 SQL Server 同步。客户端机器在现场使用,并且通常没有任何类型的连接。该计划是使用智能手机作为中间存储和转发设备。客户端会将本地更改推送到手机。然后断开电话,关闭笔记本电脑的电源,然后开车上路。开车时,手机将进入连接状态并将更改上传到中央办公室。

我需要知道我是否可以使用 Sync Framework 做到这一点。

该文档似乎表明同步编排想要访问源和目标。在这种情况下,我没有连接到目的地(中央服务器)。我怀疑我需要找到一种方法来在本地缓存目的地的知识,但我不确定这是否合适。

值得注意的是,客户端计算机将定期进行直接连接,但不是每天。

所以场景是:

  1. 客户端机器在星期一直接连接并进行完全同步。
  2. 周二,用户外出并使用应用程序,对 SQL Express 数据库生成更新/插入/删除。
  3. 用户将客户端计算机“同步”到他们的智能手机。(将文件保存到 SD 卡)
  4. 用户关闭客户端并沿路行驶。
  5. 智能手机进入连接并将文件上传到中央办公室。
  6. 中央办公室将上传文件中的数据“同步”到中央 SQL Server 数据库。
  7. 周三、周四、周五重复 2-6。
  8. 在接下来的星期一,用户再次直接连接以进行完全同步。

如何使用 Sync Framework 执行此操作?

如果我可以让智能手机每天从中心办公室下载一些东西(比如中心办公室的知识),这有帮助吗?如果客户端正在针对来自中央办公室的陈旧缓存知识编排同步会话,是否会造成伤害?

提前致谢!

0 投票
0 回答
787 浏览

c# - 使用 RetryApplyingRow 同步框架导致不定式循环

我正在使用同步框架 2.1。我正在实施冲突处理,但我不明白为什么它不起作用:

这是我的冲突处理代码:

我还尝试使 e.Conflict.RemoteChange 等于 e.Conflict.LocalChange 以将所有值合并到两个数据表:

机器人也无济于事。

- 我的代码有什么问题?
- 我没有找到任何使用 RetryApplyingRow 的好例子。你能提供吗?

提前致谢!

0 投票
1 回答
615 浏览

c# - 在插入操作时同步框架更新注册

我有一个仅对某些范围的寄存器生效的范围(例如,ID 介于 1 和 3 之间的寄存器范围)

所以,让我们假设我在远程数据库上有以下注册:

ID --- 姓名

1 --- 名称1

2 --- 名称2

3 --- 名称3

4 --- 名称4

5 --- 名称5

在我的客户端上,如果我对 id 为 1、2 或 3(属于范围)的 regists 进行更改,则同步工作正常。

但是,如果我在 ID 为 4 的客户端数据库中添加一个新行,则此注册表将与远程数据库中具有相同 ID 的注册表重叠,并引发任何失败事件之王。

为什么会这样?由于ID已经存在于远程数据库中,所以应该插入注册表对吗?

这是我的服务器配置:

此代码适用于本地数据库:

这是同步代码:

0 投票
2 回答
495 浏览

sql - Sync framework with encryption

I am using Sync framework default database provider to synchronization (Sync framework 2.1). Can anyone please give me bit explanation how data transfer between client and server with sync framework? Are there any security threat with this Synchronizing? Can we use encryption with default database provider?

I read the following article, http://msdn.microsoft.com/en-us/sync/bb887608.aspx

From a synchronization perspective, Sync Framework supports the ability to encrypt data as it travels between databases. On the corporate side, SQL Server 2008 as well as existing IIS security can be leveraged for user authentication as users exchange data.

we are using the default sync provider. Can we use default database provider to synchronize over the HTTPS or SSL? Basically what I need to know is, can someone see the data transferring between client to server?

Please give me your answer.

Regards,

0 投票
0 回答
129 浏览

azure - 无法更新身份列“scope_local_id”

更新我修改了我的方法,为每个数据库模式使用 1 个同步范围。这消除了除dbo. 然后我分成dbo几个同步范围,这似乎已经消除了dbo. 我不清楚为什么在单个同步范围内拥有大量表会导致此特定错误消息。

我正在使用 Microsoft Sync Framework 2.1 来设置两个数据库之间的同步。我正在使用以下代码预配 Azure 数据库:

此代码在运行几分钟后抛出异常:

通常这种错误是由已经存在的作用域引起的,所以我尝试了以下三种方法(多次)来清理作用域并重新开始:

  1. 通过调用取消配置范围deprovisioning.DeprovisionScope(ScopeName)
  2. 通过调用取消配置存储deprovisioning.DeprovisionStore()
  3. 删除并重新创建数据库。

不幸的是,这些都没有奏效。

0 投票
1 回答
348 浏览

sql - Sync Framework 2.1 第一次同步花费了太多时间

我正在使用同步框架 2.1 来同步我的数据库,它只是单向的,即源到目标数据库。第一次同步数据库时遇到问题。我将表分成不同的组,以便在同步时减少开销。我有一张表,里面有 90 万条记录。在同步该表时,SyncOrchestrator.Synchronize(); 方法不返回任何东西。网络使用率,磁盘 i/o 一切都变高了。我已经等待 2 天完成同步过程,但它仍然没有发生任何事情。我还使用“sp_who2”检查了 sql db,并且该进程处于挂起模式。我还使用了一些从网上找到的查询,它说 table_selectchanges 需要太多时间。

我使用以下代码来同步我的数据库。

0 投票
1 回答
187 浏览

.net - 此 SqlParameterCollection 不包含具有 ParameterName '@changeTable' 的 SqlParameter

我正在尝试按照Microsoft 的说明在 Microsoft SQL Server 数据库(服务器)和 Microsoft SQL Server Compact Edition 数据库(客户端)之间进行同步。

  • 同步是 N 层(服务器和客户端通过 Windows Communication Foundation Web 服务进行通信)
  • 同步是批处理的
  • 同步是双向的

我已经配置了两个数据库,并已成功将数据从服务器下载到客户端。当我尝试将数据从客户端上传到服务器时,服务器上出现异常:

此 SqlParameterCollection 不包含具有 ParameterName '@changeTable' 的 SqlParameter

一旦从客户端接收到所有同步批处理文件并且 Sync Framework 开始将这些批处理应用到服务器,就会发生此异常。什么可能导致这个问题?