Я настраиваю синхронизацию с базами данных для системы резервирования.
Я проверил свой код на моей машине и на двух тестовых серверах, где он работал хорошо.
Я пытался привестиэто к нашей производственной системе, где все было настроено.
Я включил tcp для серверов для связи.
Когда программа запускается, задана область действия, я вижу, как создаются все таблицы отслеживания.и все хранимые процедуры.
Но когда дело доходит до начала процесса синхронизации, ничего не происходит.Он запускается с ошибкой тайм-аута, потому что сервер не отвечает.
Как я вижу, таблицы и хранимые процедуры созданы на другом сервере, я знаю, что я могу связаться с сервером.Но когда данные должны быть отправлены из orimary на вторичный сервер, это дает сбой.
SyncOrchestrator syncOrchestrator = new SyncOrchestrator
{
// ProductsScope in the SyncCompactDB compact client database
LocalProvider = new SqlSyncProvider(primaryScope, primaryConnection),
// set the remote provider of orchestrator to a server sync provider associated with
// the ProductsScope in the SyncDB server database
RemoteProvider = new SqlSyncProvider(secondaryScope, secondaryConnection),
// set the direction of sync session to Upload and Download
Direction = SyncDirectionOrder.UploadAndDownload
};
// subscribe for errors that occur when applying changes to the client
((SqlSyncProvider)syncOrchestrator.LocalProvider).ApplyChangeFailed += new EventHandler<DbApplyChangeFailedEventArgs>(Program_ApplyChangeFailed);
// execute the synchronization process
try
{
if (secondaryConnection.State == ConnectionState.Closed)
{
secondaryConnection.Open();
}
if (primaryConnection.State == ConnectionState.Closed)
{
primaryConnection.Open();
}
Console.WriteLine("State of primary conection: {0}", primaryConnection.State);
Console.WriteLine("State of secondary conection: {0}", secondaryConnection.State);
Console.WriteLine("Start synchronizing");
SyncOperationStatistics syncStats = syncOrchestrator.Synchronize();
// print statistics
Console.WriteLine("Start Time: " + syncStats.SyncStartTime);
Console.WriteLine("Total Changes Uploaded: " + syncStats.UploadChangesTotal);
Console.WriteLine("Total Changes Downloaded: " + syncStats.DownloadChangesTotal);
Console.WriteLine("Complete Time: " + syncStats.SyncEndTime);
Console.WriteLine(String.Empty);
}
Я также не вижу в профиле SQL Server, что на вторичном сервере есть какие-либо действия.У вас есть идея, что я могу проверить, чтобы выяснить, что не так?