2017-04-19 20 views
0

ActorServiceのバックアップを復元しようとしましたが、次のエラーを受け取りました:Method not found: 'Void System.Fabric.RestoreSettings..ctor(Boolean, Boolean)' 内部例外はありません。Actorバックアップの復元でエラーが発生しました - メソッドが見つかりません: 'Void System.Fabric.RestoreSettings..ctor(Boolean、Boolean)'

それは、ActorServiceを拡張し、私は渡されたbackupFolderをチェックして、それが有効であり、その中にバックアップを持っているIActorService

を拡張インターフェイスを実装するカスタム俳優サービスです。

await restoreCtx.RestoreAsync(restoreRescription, cancellationToken);

これは次のとおりです。私はそれは、関連はないと思う復元していますが、これはこれは、例外はによってスローされたラインがある

Azureのブロブストレージから取得されたバックアップであることを考えますそれは中に座っている方法:@VaclavTurecek問題によって示唆されるように

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

通常、メソッドが見つからない例外は、実行中のSFランタイムよりも新しいバージョンのSF Nugetパッケージを使用することによって発生します。インストールしたSFランタイムバージョンを確認し、マイナーバージョンが使用しているSF NuGetパッケージ以上であることを確認してください。たとえば、5.4ランタイムはNuGetパッケージ2.4以下をサポートしますが、2.5はサポートしません。 –

+0

@VaclavTurecekこれは、おかげで非常に感謝しました。 – mckjerral

+0

Cool。 SDKの新機能をサポートするために、ランタイムに新しい機能を追加する必要が生じることがあるため、これが発生します。したがって、NuGetパッケージの新しいバージョンが常に古いランタイムで動作することを保証することはできません。しかし、NuGetパッケージを更新する必要なく、常に最新のランタイムを使用することができます。 –

答えて

1

はサービスファブリックNugetパッケージが先のサーバー(この場合は私のローカルマシン)にインストールされているランタイムのバージョンだったということでした。 Web Platform Installerを使用して更新すると、問題が解決されました。