У меня есть сервер, который получает URL-адрес файла большого двоичного объекта Azure (только для чтения SAS) и копирует его в другой большой двоичный объект в другой учетной записи хранения.Команда копирования является асинхронной командой (StartCopyAsync()
).
Копировать файл - это только одна вещь, которую делает этот сервер, он делает еще немного.Если один (или более) из другого расчета не удался, это исключение броска.
Когда возникла исключительная ситуация, я выполняю откат, что означает удаление файла, который я скопировал на первом этапе.Я делаю это так:
await backupFile.DeleteIfExistsAsync();
Проблема
Я получаю этот код ошибки:
System.AggregateException: One or more errors occurred. (There is currently a pending copy operation.)
---> Microsoft.WindowsAzure.Storage.StorageException: There is currently a pending copy operation.
at Microsoft.WindowsAzure.Storage.Core.Executor.Executor.ExecuteAsyncInternal[T](RESTCommand`1 cmd, IRetryPolicy policy, OperationContext operationContext, CancellationToken token) at Microsoft.WindowsAzure.Storage.Blob.CloudBlob.DeleteIfExistsAsync(DeleteSnapshotsOption deleteSnapshotsOption, AccessCondition accessCondition, BlobRequestOptions options, OperationContext operationContext, CancellationToken cancellationToken)
Я думаю, потому что асинхронная копия еще не закончена...
Возможно ли это решить с помощью асинхронной команды удаления, которая будет выполняться после выполнения команды копирования?
Любое другое решение будет приветствоваться.Спасибо!