2012-04-14 6 views
0

I Remote-SQL-Datenbank mit lokaler SQL-Datenbank unter Verwendung von Microsoft Sync FrameworkDbNotProvisioned Ausnahme

, wenn es für die lokale SQL läuft die Synchronisierung versuchen für 2 verschiedene Datenbank es wie Charme funktioniert, wenn ich denselben Code für Remote-Datenbank versuchen - local Datenbanksynchronisierung mit Fehler

Der aktuelle Vorgang konnte nicht abgeschlossen werden, da die Datenbank nicht für die Synchronisierung bereitgestellt wurde oder Sie keine Berechtigungen für die Synchronisierungstabellen haben.

Wie mit oben Ausnahme zu überwinden

Hier ist mein Code

  var serverProvision = new SqlSyncScopeProvisioning(serverConn); 
      if (!serverProvision.ScopeExists(tableName)) 
      { 
       try 
       { 
        var scopeDesc = new DbSyncScopeDescription(tableName); 
        scopeDesc.Tables.Add(SqlSyncDescriptionBuilder.GetDescriptionForTable(tableName, serverConn)); 
        serverProvision.PopulateFromScopeDescription(scopeDesc); 
        serverProvision.SetCreateTableDefault(DbSyncCreationOption.Skip); 
        serverProvision.Apply(); 
       } 
       catch (Exception exception) 
       { 
        MessageBox.Show(exception.Message); 
       } 
      } 
  var clientProvision = new SqlSyncScopeProvisioning(clientConn); 
      if (!clientProvision.ScopeExists(tableName)) 
      { 
       try 
       { 
        var scopeDesc = SqlSyncDescriptionBuilder.GetDescriptionForScope(tableName, serverConn); 
        clientProvision.PopulateFromScopeDescription(scopeDesc); 
        clientProvision.Apply(); 
       } 
       catch (Exception exception) 
       { 
        MessageBox.Show(exception.Message); 
       } 
      } 

      var serverProvider = new SqlSyncProvider(tableName, serverConn); 
      var clientProvider = new SqlSyncProvider(tableName, clientConn); 
      var syncOrchestrator = new SyncOrchestrator{Direction = SyncDirectionOrder.DownloadAndUpload,LocalProvider = clientProvider, RemoteProvider = serverProvider}; 

      ((SqlSyncProvider)syncOrchestrator.LocalProvider).ApplyChangeFailed += ProgramApplyChangeFailed;    
      syncOrchestrator.Synchronize(); 

Dank

Vinay

+0

rufen Sie den Bereitstellungscode vor dem Aufruf von Synchronize() auf? Haben Sie den Server überprüft, wenn die Bereitstellung tatsächlich erfolgreich ist? Überprüfen Sie, ob die folgenden Tabellen vorhanden sind: scope_info, scope_config, etc ... und überprüfen Sie, unter welchem ​​Schema sie erstellt werden (dbo?) – JuneT

+0

Meine entfernte Datenbank ist nicht unter dbo .. Es ist unter bestimmten Benutzer/Schema, gleichen Benutzer/Schema erstellt in meiner lokalen Datenbank sind Synchronisierungstabellen vorhanden –

+1

versuche, die ObjectSchema-Eigenschaft explizit zu setzen – JuneT

Antwort

0

Es war ein Berechtigungsproblem beim Shared Database Hosting!

Dank JuneT für all Ihre Hilfe.

Danke euch allen.

Dank Vinay

0

hatte ich eine anderen Fall, in dem das passiert ist: das Standardschema für den Benutzer, ist nicht das Schema der Tabellen I, wo in ... synchronisiert werden wollte Und das nicht funktioniert: -) änderte das Standardschema für den sync db Benutzer zu dem gleichen Schema, in dem die Tabellen waren und dann funktionierte es nahtlos!