Я разработал одно онлайн/оффлайн программное обеспечение, в котором использовал Microsoft sync framework 2.1. В этом приложении я создал индивидуальную настройку (используя класс установщика), чтобы я мог синхронизировать локальную базу данных перед ее использованием. В целях тестирования я установил это программное обеспечение на несколько систем, я успешно выполнил установку и синхронизацию на всех тестовых системах. Но когда я хочу синхронизировать базу данных с помощью установленного мной программного обеспечения, она успешно синхронизируется в некоторых системах и дает исключение в некоторых системах. Я использовал ту же логику для синхронизации в классе установщика и в своем приложении. Вот мой код синхронизации.
SqlConnection serverConn = new SqlConnection(DataAccess.SqlServerCon);
SqlConnection clientConn = new SqlConnection(DataAccess.SqlCon);
serverConn.Open();
clientConn.Open();
SyncOrchestrator syncOrchestrator = new SyncOrchestrator();
// Create provider for SQL Server
SqlSyncProvider serverProvider = new SqlSyncProvider("Scope1", serverConn);
// Set the command timeout and maximum transaction size for the SQL
SqlSyncProvider clientProvider = new SqlSyncProvider("Scope1", clientConn);
// Set Local provider of SyncOrchestrator to the server provider
syncOrchestrator.LocalProvider = serverProvider;
serverProvider.ObjectSchema = ".dbo";
// Set Remote provider of SyncOrchestrator to the client provider
syncOrchestrator.RemoteProvider = clientProvider;
// Set the direction of SyncOrchestrator session to Upload and Download
syncOrchestrator.Direction = SyncDirectionOrder.UploadAndDownload;
try
{
// Create SyncOperations Statistics Object
SyncOperationStatistics syncStats = syncOrchestrator.Synchronize();
// Display the Statistics
MessageBox.Show("Start Time: " + syncStats.SyncStartTime);
MessageBox.Show("Total Changes Uploaded: " + syncStats.UploadChangesTotal);
MessageBox.Show("Total Changes Downloaded: " + syncStats.DownloadChangesTotal);
MessageBox.Show("Complete Time: " + syncStats.SyncEndTime);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
serverConn.Close();
serverConn.Dispose();
clientConn.Close();
clientConn.Dispose();
Я получаю эту ошибку в строке SyncOperationStatistics syncStats = syncOrchestrator.Synchronize();
Я получаю сообщение об ошибке, показанное на рис. ниже.