更新我修改了我的方法,为每个数据库模式使用 1 个同步范围。这消除了除dbo
. 然后我分成dbo
几个同步范围,这似乎已经消除了dbo
. 我不清楚为什么在单个同步范围内拥有大量表会导致此特定错误消息。
我正在使用 Microsoft Sync Framework 2.1 来设置两个数据库之间的同步。我正在使用以下代码预配 Azure 数据库:
// Set up destination server for sync
var destinationScopeProvisioning = new SqlSyncScopeProvisioning(DestinationConnection, scope);
if (!destinationScopeProvisioning.ScopeExists(ScopeName))
{
destinationScopeProvisioning.Apply();
}
此代码在运行几分钟后抛出异常:
An unhandled exception of type 'Microsoft.Synchronization.Data.DbPartiallyProvisionedException' occurred in Microsoft.Synchronization.Data.SqlServer.dll
Additional information: Cannot update identity column 'scope_local_id'.
通常这种错误是由已经存在的作用域引起的,所以我尝试了以下三种方法(多次)来清理作用域并重新开始:
- 通过调用取消配置范围
deprovisioning.DeprovisionScope(ScopeName)
- 通过调用取消配置存储
deprovisioning.DeprovisionStore()
- 删除并重新创建数据库。
不幸的是,这些都没有奏效。