다음은 내 코드입니다 :PerformPostRestoreFixup() 메소드가 예외 제공 : Microsoft.Synchronization.Data.DbNotProvisionedException를
SqlConnection.ClearPool(serverConn);
serverConn = new SqlConnection(Utility.ConnStr_SqlSync_Server);
SqlSyncStoreRestore databaseRestore = new SqlSyncStoreRestore(serverConn);
databaseRestore.CommandTimeout = 1000; //Database is about 300 Gb
databaseRestore.PerformPostRestoreFixup(); //line #31
오류 메시지 :
Unhandled Exception: Microsoft.Synchronization.Data.DbNotProvisionedException: The current operation could not be completed because the database is not provisioned for sync or you not have permissions to the sync configuration tables.
at Microsoft.Synchronization.Data.SqlServer.SqlManagementUtils.VerifyRuntimeAndSchemaVersionsMatch(SqlConnection connection, SqlTransaction trans, String objectPrefix, String objectSchema, Boolean throwWhenNotProvisioned)
at Microsoft.Synchronization.Data.SqlServer.SqlSyncStoreRestore.PerformPostRestoreFixup()
at FixSyncEnabledDbAfterBackup.Program.Main(String[] args) ..\Visual Studio 2010\Projects\FixSyncEnabledDbAfterBackup\FixSyncEnabledDbAfterBackup\Program.cs:line 31
그리고 내 질문 :
은 어떻게 할 권한 또는 제공 문제가 있는지 확인하십시오.
이 코드는 동일한 결과를내는 두 개의 유사한 시스템에서 실행했습니다. 하나의 시스템 동기화는 완벽하게 다른 내가 확인 것처럼
System.ArgumentException: SQL Server Change Tracking is not enabled for table 'Users' and stops.
변경 내용 추적이 활성화 된 추적 로그에 다음과 같은 경고를 제공합니다. PerformPostRestoreFixup() 메소드를 사용하여 간단한 복구 모델로 전환 한 후 전체 모델 (예상했던 동기화 문제의 원인)으로 돌아간 후 두 번째 시스템의 데이터베이스를 복구 할 수 있기를 바랍니다.