Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 服务结构:还原到特定版本?_C#_Azure_Sass_Backup_Azure Service Fabric - Fatal编程技术网

C# 服务结构:还原到特定版本?

C# 服务结构:还原到特定版本?,c#,azure,sass,backup,azure-service-fabric,C#,Azure,Sass,Backup,Azure Service Fabric,我使用服务结构实现了备份和恢复。 我的备份放入azure上带有时间戳和服务名称的文件夹中 目前我只搜索最新的备份,但是如果我想恢复到旧版本呢 我使用 await fabricClient.TestManager.StartPartitionDataLossAsync(operationId, partitionSelector, DataLossMode.FullDataLoss); 这会触发此处的数据丢失 protected override async Task<bool>

我使用服务结构实现了备份和恢复。 我的备份放入azure上带有时间戳和服务名称的文件夹中

目前我只搜索最新的备份,但是如果我想恢复到旧版本呢

我使用

 await fabricClient.TestManager.StartPartitionDataLossAsync(operationId, partitionSelector, DataLossMode.FullDataLoss);
这会触发此处的数据丢失

protected override async Task<bool> OnDataLossAsync(RestoreContext restoreCtx, CancellationToken cancellationToken)
{
    await this.SetupBackupManager(null);

    try
    {
        string 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)
    {
        throw;
    }
}
受保护的覆盖异步任务OnDataLossAsync(RestoreContext RestoreCX,CancellationToken CancellationToken)
{
等待此消息。SetupBackupManager(null);
尝试
{
string backupFolder=wait this.backupManager.restorelatestbackuptemplation(cancellationToken);
RestoreDescription RestoreDescription=新的RestoreDescription(备份文件夹,RestorePolicy.Force);
等待restoreCX.RestoreAsync(restoreDescription,cancellationToken);
DirectoryInfo tempRestoreDirectory=新目录信息(备份文件夹);
tempRestoreDirectory.Delete(true);
返回true;
}
捕获(例外e)
{
投掷;
}
}
我的备份管理器中有我的代码来处理它,但我无法思考/找到将任何内容传递给OnDataLossAsync的方法


RestoreLatestBackupTemplocation查找最新备份

您可以将该信息存储在集群之外,如中,并在恢复期间从中读取

编辑: 我一直在研究一个能让事情变得更简单的方法。欢迎反馈和贡献