2017-04-19 3 views
0

Der Versuch, eine Sicherung für einen ActorService wiederherzustellen und den folgenden Fehler zu empfangen: Method not found: 'Void System.Fabric.RestoreSettings..ctor(Boolean, Boolean)' Es gibt keine innere Ausnahme .Fehler beim Wiederherstellen der Actor-Sicherung - Methode nicht gefunden: 'Void System.Fabric.RestoreSettings..ctor (Boolean, Boolean)'

Es ist ein Brauch Schauspieler Dienst, der ActorService und implementiert eine Schnittstelle erweitert, die IActorService

Verlängert ich die Backupüberprüft haben, die in übergeben wird, und es ist gültig und hat die Sicherung innerhalb dieser Gruppe. In Anbetracht, dass es wieder Ich glaube nicht, es ist relevant, aber dies ist eine Sicherung, die von Azure Blob Speicher abgerufen wurde

Das ist die Linie der Ausnahme von geworfen wird:

await restoreCtx.RestoreAsync(restoreRescription, cancellationToken);

Dies ist das Verfahren es sitzt in:

protected override async Task<bool> OnDataLossAsync(RestoreContext restoreCtx, CancellationToken cancellationToken) 
     { 

      try 
      { 
       string backupFolder;  

       backupFolder = await this.backupManager.RestoreLatestBackupToTempLocation(cancellationToken);      

       RestoreDescription restoreRescription = new RestoreDescription(backupFolder, RestorePolicy.Force); 

       await restoreCtx.RestoreAsync(restoreRescription, cancellationToken);  

       DirectoryInfo tempRestoreDirectory = new DirectoryInfo(backupFolder); 
       tempRestoreDirectory.Delete(true); 

       return true; 
      } 
      catch (Exception e) 
      { 
       ActorEventSource.Current.Message("Restoration failed: " + "{0} {1}" + e.GetType() + e.Message); 

       throw; 
      } 
     } 
+0

Normalerweise wird eine nicht gefundene Ausnahme durch die Verwendung einer Version der SF Nuget-Pakete verursacht, die neuer als die SF-Laufzeit ist, auf der sie ausgeführt werden. Überprüfen Sie die installierte SF-Runtime-Version und stellen Sie sicher, dass die Nebenversion größer oder gleich den SF NuGet-Paketen ist, die Sie verwenden. Zum Beispiel unterstützt die 5.4-Laufzeit die NuGet-Pakete 2.4 und niedriger, aber nicht 2.5. –

+0

@VaclavTurecek Das war der Trick, vielen Dank, war der letzte Schluckauf Schauspieler Backups von der Arbeit zu stoppen! – mckjerral

+0

Kühl. Dies geschieht übrigens, weil wir der Laufzeit manchmal neue Funktionen hinzufügen müssen, um neue Funktionen im SDK zu unterstützen. Daher können wir nicht garantieren, dass eine neue Version eines der NuGet-Pakete immer mit einer älteren Laufzeitumgebung funktioniert. Aber Sie können immer die neueste Laufzeit verwenden, ohne Ihre NuGet-Pakete aktualisieren zu müssen, damit sie weiter funktionieren. –

Antwort

1

Wie @VaclavTurecek schlug das Problem war, dass der Service Fabric Nuget Pakete eine Version vor der Laufzeit auf dem Server (in diesem Fall meiner lokalen Maschine) installiert waren. Die Aktualisierung über den Web Platform Installer hat das Problem gelöst.

Verwandte Themen