0

我開發了一個使用Microsoft同步框架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();

我得到如下圖所示的這個錯誤得到這個錯誤。 enter image description here

+0

您確定命令語法是否正確,並且您是否檢查了任何特定於商店的錯誤的內部異常? –

+0

syncOrchestrator.Synchronize();是發生異常的庫函數,所以我不能在這裏檢查命令語法。但是在安裝時這段代碼完美地工作。 –

回答

0

我明白了。在Windows 7中,我們需要更改安裝文件夾的安全設置。我們需要完全控制用戶,以便數據庫不會是隻讀的。發生此異常是因爲我的本地數據庫對用戶是隻讀的,而安裝同步是由系統完成的,而系統數據庫不是隻讀的。

相關問題