У меня есть база данных на сервере A, которая также содержит таблицы по умолчанию и sp, которые используются процессом aspnet_Regsql.exe (в основном я использую модуль аутентификации asp.net с этими таблицами) и резервный сервер B, который я использую каркас синхронизации sqlOrchester и SqlProvider для синхронизации между ними вместе.
но по какой-то причине, когда я пытаюсь выполнить процесс инициализации на удаленном сервере A
я получаю сообщение об ошибке в строке, которая создает объект SqlSyncScopeProvisioning за исключением исключения DbSyncException, утверждая, что мне не хватает столбца первичного ключа в таблице aspnet_personalizationperuser, хотя в этой таблице есть столбец первичного ключа [Id], который является столбцом uniqueidentifier.
Я добавил строки кода, которые я использую для процесса инициализации:
var TableNames = [Коллекция всех имен таблиц в базе данных];
var dbScopeDescription =
BuildScopeFromTableList (this.RemoteProvider, TableNames);
защищенный DbSyncScopeDescription
BuildScopeFromTableList (поставщик RelationalSyncProvider, строка [] 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);