Sync Framework sql не синхронизирует данные с другой базой данных, но создаются таблицы отслеживания - PullRequest
0 голосов
/ 16 февраля 2019

Я настраиваю синхронизацию с базами данных для системы резервирования.

Я проверил свой код на моей машине и на двух тестовых серверах, где он работал хорошо.

Я пытался привестиэто к нашей производственной системе, где все было настроено.

Я включил 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, что на вторичном сервере есть какие-либо действия.У вас есть идея, что я могу проверить, чтобы выяснить, что не так?

...