Я ищу здесь и в Google, но я не могу найти решение.
С моим кодом С# я хочу прочитать файл из Azure Storage Blob. Код (всего 6 строк) отлично работает в другом проекте (Windows 8.1 Universal App), но не в моем новом приложении Windows 10 UWP.
Это мой код:
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(azureConnectionString);
CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
CloudBlobContainer container = blobClient.GetContainerReference("container-name");
CloudBlob b1 = container.GetBlobReference("27.76914.json");
StorageFile file = await ApplicationData.Current.LocalFolder.CreateFileAsync("stefano1.json", CreationCollisionOption.ReplaceExisting);
await b1.DownloadToFileAsync(file);
Исключение:
Серверу не удалось аутентифицировать запрос. Убедитесь, что значение Заголовок авторизации формируется правильно, включая подпись.
Использование Fiddler4 Я нашел эту ошибку в сообщении 403:
Подпись MAC, найденная в HTTP-запросе "R2t9hKsyXf470HF2LNP8T + M2nci0ddE/ojQ0r4UVjJQ =", не совпадает с любой вычисленной сигнатурой
Мои попытки:
- Приложение работает в первый раз (файл загружен). Во второй раз я получаю исключение.
- Если я изменил запрошенное имя файла: приложение работает в первый раз (файл загружен). Во второй раз я получаю исключение.
- На следующий день я получаю сразу же исключение (при первом запуске)
- Также, если я удаляю папки bin и obj, я получаю сообщение об ошибке
- Если я создаю другое приложение и пытаюсь загрузить тот же файл (тот же, что и в пункте 1), он работает в первый раз, но не второй.
- В консольном приложении все работает хорошо.
Это запрос Fiddler4 Raw (где ***** - мое имя учетной записи Azure Storage):
GET https://*****.blob.core.windows.net/container-name/27.76914.json HTTP/1.1
x-ms-client-request-id: accee7e7-646d-417a-b734-1591cbc16a8d
x-ms-date: Thu, 03 Sep 2015 06:31:37 GMT
x-ms-version: 2015-02-21
User-Agent: WA-Storage/5.0.2 (Windows Runtime)
Authorization: SharedKey *****:R2t9hKsyXf470HF2LNP8T+M2nci0ddE/ojQ0r4UVjJQ=
Host: *****.blob.core.windows.net
If-Modified-Since: Sun, 30 Aug 2015 18:52:41 GMT
If-None-Match: "0x8D2B16C2ED82C4A"
Connection: Keep-Alive
Спасибо!