我在服务器A上有一个数据库,它还包含aspnet_Regsql.exe进程使用的默认表和sp(主要是我使用asp.net的身份验证模块和那些表)和备份服务器B,我使用它同步框架sqlOrchester和SqlProvider在它们之间进行同步。 但出于某种原因,当我尝试在远程服务器A上进行配置过程时 我在创建SqlSyncScopeProvisioning对象的行上出现错误,但DbSyncException异常除外,声明我在表aspnet_personalizationperuser上缺少主键列,尽管该表具有主键列[Id],其中包含唯一标识符列。< / p>
我添加了我用于配置过程的代码行:
var TableNames = [数据库中所有表名的集合];
var dbScopeDescription = BuildScopeFromTableList(this.RemoteProvider,TableNames);
受保护的DbSyncScopeDescription BuildScopeFromTableList(RelationalSyncProvider provider,string [] SyncTablesNames)
{
DbSyncScopeDescription scopeDesc = new DbSyncScopeDescription(SyncSettings.ScopeName); SqlConnection serverConn = (SqlConnection的)provider.Connection;
foreach (String table in SyncTablesNames) { DbSyncTableDescription tableDesc = SqlSyncDescriptionBuilder.GetDescriptionForTable(table, serverConn); scopeDesc.Tables.Add(tableDesc); } return scopeDesc; }
var serverConfig = new SqlSyncScopeProvisioning((SqlConnection)this.remoteProvider.Connection,dbScopeDescription);