1

我将 Sync Framework 2.0 与 SQL Server 2008 和 Sql Compact Server 3.5 SP 一起使用,并使用集成的 SQL Server 更改跟踪。

现在我想将 Sync Framework 升级到 2.1 版

帮助说有一个 2.0 兼容模式,并且 CE 数据库自动升级。当我连接到我上次与 2.0 版本同步的 CE 数据库时,我收到以下消息:

Microsoft.Synchronization.Data.DbNotProvisionedException The current operation could not be completed because the database is not provisioned for sync or you not have permissions to the sync configuration tables. Boolean NeedsUpgrade()

看起来 Sync Framework 尝试使用错误的更改跟踪机制升级数据库。但我无法找到一种方法来设置要使用的机制。

详细,w3wp,17,08/30/2011 11:54:25:720,使用字符串连接:数据源=mueller1103;初始目录=客户.Web;用户 ID=客户

详细,w3wp,17,08/30/2011 11:54:25:722,使用字符串连接:数据源=mueller1103;初始目录=客户.Web;用户 ID=客户

详细,w3wp,17,08/30/2011 11:54:25:726,使用字符串连接:数据源=mueller1103;初始目录=客户.Web;用户 ID=客户

详细,w3wp,17,08/30/2011 11:54:25:728,使用字符串连接:数据源=mueller1103;初始目录=客户.Web;用户 ID=客户

详细,w3wp,17,08/30/2011 11:54:25:729,使用字符串连接:数据源=mueller1103;初始目录=客户.Web;用户 ID=客户;密码= * *

详细,w3wp,17,08/30/2011 11:54:25:737,使用字符串连接:数据源=mueller1103;初始目录=客户.Web;用户 ID=客户

详细,w3wp,17,08/30/2011 11:54:25:757,使用字符串连接:数据源=mueller1103;初始目录=客户.Web;用户 ID=客户

详细,w3wp,17,08/30/2011 11:54:25:770,使用字符串连接:数据源=mueller1103;初始目录=客户.Web;用户 ID=客户

详细,w3wp,17,08/30/2011 11:54:25:810,使用字符串连接:数据源=mueller1103;初始目录=客户.Web;用户 ID=客户

详细,w3wp,17,08/30/2011 11:54:25:834,使用字符串连接:数据源=mueller1103;初始目录=客户.Web;用户 ID=客户

详细,w3wp,17,08/30/2011 11:54:25:846,使用字符串连接:数据源=mueller1103;初始目录=客户.Web;用户 ID=客户

详细,w3wp,17,08/30/2011 11:54:25:851,使用字符串连接:数据源=mueller1103;初始目录=客户.Web;用户 ID=客户

详细,w3wp,17,08/30/2011 11:54:25:862,使用字符串连接:数据源=mueller1103;初始目录=客户.Web;用户 ID=客户

详细,w3wp,17,08/30/2011 11:54:25:883,使用字符串连接:数据源=mueller1103;初始目录=客户.Web;用户 ID=客户

详细,w3wp,17,08/30/2011 11:54:25:894,使用字符串连接:数据源=mueller1103;初始目录=客户.Web;用户 ID=客户

详细,w3wp,17,08/30/2011 11:54:25:925,使用字符串连接:数据源=mueller1103;初始目录=客户.Web;用户 ID=客户

详细,w3wp,17,08/30/2011 11:54:25:931,使用字符串连接:数据源=mueller1103;初始目录=客户.Web;用户 ID=客户

详细,w3wp,17,08/30/2011 11:54:25:937,使用字符串连接:数据源=mueller1103;初始目录=客户.Web;用户 ID=客户

详细,w3wp,17,08/30/2011 11:54:25:947,使用字符串连接:数据源=mueller1103;初始目录=客户.Web;用户 ID=客户

详细,w3wp,17,08/30/2011 11:54:25:952,使用字符串连接:数据源=mueller1103;初始目录=客户.Web;用户 ID=客户

详细,w3wp,17,08/30/2011 11:54:25:961,使用字符串连接:数据源=mueller1103;初始目录=客户.Web;用户 ID=客户

详细,w3wp,17,08/30/2011 11:54:25:966,使用字符串连接:数据源=mueller1103;初始目录=客户.Web;用户 ID=客户

详细,w3wp,17,08/30/2011 11:54:25:975,使用字符串连接:数据源=mueller1103;初始目录=客户.Web;用户 ID=客户

详细,w3wp,17,08/30/2011 11:54:25:985,使用字符串连接:数据源=mueller1103;初始目录=客户.Web;用户 ID=客户

详细,w3wp,17,08/30/2011 11:54:25:990,使用字符串连接:数据源=mueller1103;初始目录=客户.Web;用户 ID=客户

详细,w3wp,17,08/30/2011 11:54:26:000,连接到数据库:D:\Customer\Customer.WEB\Service\App_Data\1a074cdb-b03a-406a-8996-098811c375a2CustomerMobil.sdf

System.NullReferenceException 对象引用未设置为对象的实例。布尔 UpgradePublicTracking(System.String) 在 System.Data.SqlServerCe.SqlCeChangeTracking.UpgradePublicTracking(String connectionString)
在 Microsoft.Synchronization.Data.SqlServerCe.SqlCeClientSyncProvider.PerformUpgradeIfNecessary()
在 Microsoft.Synchronization.Data.SqlServerCe.SqlCeClientSyncProvider.BeginTransaction(SyncSession syncSession )
在 Microsoft.Synchronization.SyncAgent.DataSynchronize()
在 Microsoft.Synchronization.SyncAgent.Synchronize()
在 Customer.Sync.Mobile.MobilSync.SyncUp() 在 D:\Customer\Customer.Sync\Customer.Sync\Mobile\MobilSync .cs:泽勒 38。
在 D:\Customer\Customer.WEB\MobilSync\Sync.cs:Zeile 79 中的 Customer.WEB.Communication.Sync.DoSyncThread(Object syncParams)。

4

1 回答 1

0

我假设您正在尝试将 SqlCeClientSyncProvider/DBServerSyncProvider/SyncAgent 同步迁移到 SqlSyncProvider/SqlCeSyncProvider/SyncOrchestrator。

前者称为脱机提供程序(也由 Visual Studio 中的本地数据库缓存项目项使用),它适用于中心辐条拓扑。后者被称为协作提供者,可以在中心辐射或点对点场景中工作。

这些提供程序在跟踪和应用更改的方式以及它们保持同步元数据的方式上有所不同,因此您不能真正“升级”提供程序,而是“迁移”到另一组提供程序。

如果您迁移到新的提供程序,您将不得不使用供应 API 供应数据库。

这是使用新提供者的端到端教程:

教程:同步 SQL Server 和 SQL Server Compact

此外,您可以在 2.0 中保留现有代码并像在 2.1 中一样运行它们,因为您使用的提供程序没有太大变化。

于 2011-08-29T12:26:34.473 回答