恢复 Actor 备份时出错 - 找不到方法:'Void System.Fabric.RestoreSettings..ctor(Boolean, Boolean)'

Error on restoring Actor Backup - Method not found: 'Void System.Fabric.RestoreSettings..ctor(Boolean, Boolean)'

正在尝试恢复 ActorService 的备份并收到以下错误:Method not found: 'Void System.Fabric.RestoreSettings..ctor(Boolean, Boolean)' 没有内部异常。

它是一个扩展 ActorService 并实现一个扩展 IActorService

的接口的自定义 actor 服务

我已经检查了传入的 backupFolder,它是有效的并且里面有备份。鉴于它已恢复,我认为它不相关,但这是从 Azure blob 存储中检索到的备份

这是抛出异常的行:

await restoreCtx.RestoreAsync(restoreRescription, cancellationToken);

这是它所在的方法:

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;
            }
        }

正如@VaclavTurecek 所建议的那样,问题在于 Service Fabric Nuget 包的版本早于服务器上安装的运行时(在本例中为我的本地计算机)。通过 Web 平台安装程序更新已解决问题。