我开发了一个在线/离线软件,其中我使用了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();
行
我收到此错误,如下图
所示答案 0 :(得分:0)
我得到了答案。在Windows 7中,我们需要更改安装文件夹的安全设置。我们需要完全控制用户,以便数据库不是只读的。发生该异常是因为我的本地数据库对用户是只读的,而安装同步是由系统完成的,而系统数据库不是只读的。