#azure-storage
#azure-хранилище
Вопрос:
У меня есть что-то вроде следующего кода
using Microsoft.WindowsAzure.Storage;
using Microsoft.WindowsAzure.Storage.Blob;
private void DownloadFile(CloudBlockBlob blobref , string fileName)
{
blobref.DownloadToFile( fileName, FileMode.Create);
}
Это работает большую часть времени
Затем в один прекрасный день возникает следующая ошибка
Microsoft.WindowsAzure.Storage.StorageException: The operation has timed out. ---> System.TimeoutException: The operation has timed out.
at Microsoft.WindowsAzure.Storage.Core.Executor.Executor.ExecuteSync[T](RESTCommand`1 cmd, IRetryPolicy policy, OperationContext operationContext) in c:Program Files (x86)Jenkinsworkspacerelease_dotnet_masterLibClassLibraryCommonCoreExecutorExecutor.cs:line 693
--- End of inner exception stack trace ---
at Microsoft.WindowsAzure.Storage.Core.Executor.Executor.ExecuteSync[T](RESTCommand`1 cmd, IRetryPolicy policy, OperationContext operationContext) in c:Program Files (x86)Jenkinsworkspacerelease_dotnet_masterLibClassLibraryCommonCoreExecutorExecutor.cs:line 604
at Microsoft.WindowsAzure.Storage.Blob.CloudBlob.DownloadToStream(Stream target, AccessCondition accessCondition, BlobRequestOptions options, OperationContext operationContext) in c:Program Files (x86)Jenkinsworkspacerelease_dotnet_masterLibClassLibraryCommonBlobCloudBlob.cs:line 235
at Microsoft.WindowsAzure.Storage.Blob.CloudBlob.DownloadToFile(String path, FileMode mode, AccessCondition accessCondition, BlobRequestOptions options, OperationContext operationContext)
Решение, похоже, заключается в повторной генерации ключа хранилища
Есть ли способ предотвратить это?
Комментарии:
1. Не могли бы вы поделиться значением
StorageException.RequestInformation.ExtendedErrorInformation
? Это похоже на временные внутренние ошибки сервера, которые не могут быть устранены путем регенерации ключа.2. Похоже, что изменение ключа исправляет это. Я добавил больше протоколирования, чтобы перехватить в
ExtendedErrorInformation
следующий раз.3. Нет, изменение ключа не может исправить это. Это временная ошибка, поэтому она просто исчезает без каких-либо действий с вашей стороны. Я бы посоветовал вам войти в
StorageException.RequestInformation.ExtendedErrorInformation
систему now, чтобы вы могли увидеть сведения об ошибке, когда она возникнет снова.