从azure下载Blob图像时,HTTP 403服务器无法验证请求

时间:2015-10-26 18:08:11

标签: c# azure-storage-blobs win-universal-app uwp

尝试从UWP Windows 10应用中的Azure Blob存储中加载图像时出现上述错误。完整错误是

  

服务器无法验证请求。确保正确形成Authorization标头的值,包括签名。

this question

的问题相同

我正在使用WindowsAzure.Storage版本6.0.0,我的应用程序在以下方法上失败

public async Task<string> DownloadImageFromBlob(string resourceName)
    {
        BlobContinuationToken token = null;
        var blob = blobContainer.GetBlockBlobReference(resourceName);

        try
        {
            StorageFile file;
            var imageFolder = await localFolder.CreateFolderAsync(Secrets.BlobImageDirectory, CreationCollisionOption.OpenIfExists);

            file = await imageFolder.CreateFileAsync(resourceName, CreationCollisionOption.ReplaceExisting);

            using (var fileStream = await file.OpenAsync(FileAccessMode.ReadWrite))
            {
                //HTTP error 403 on the line below
                await blob.DownloadToStreamAsync(fileStream);
                return blob.Name;
            }
        }
        catch (Exception e)
        {

        }
        return null;
    }

奇怪的是,这是标准代码,在Windows 8.1通用应用程序中运行良好,但在Windows 10 UWP中失败。我不知道为什么?

更新1: 使用上面的代码启动一个全新的UWP项目可以正常工作。所以它不是Windows 10问题,而是项目特定的。

深入挖掘错误消息会显示以下内容

  

在HTTP请求'HNMOq8xg4P / y + KpCz0bTEJVaUylV5zJUe7gl6Dey6HU ='中找到的MAC签名与任何计算签名不同。服务器使用以下字符串进行签名:'GET \ r \ n \ r \ n \ r \ n \ r \ n \ r \ n \ r \ n \ n \ r \ nWed,2015年4月22日07:58:59 GMT \ r \ n \ r \ n \ nx8D24AE9533BAAA3 \ r \ n \ r \ n \ r \ n \ n \ n-ms-client-request-id:e7cf3a53-8bf1-4eef-b874-32ca126db514 \ r \ n \ n nx-ms-date:2015年10月27日星期二09 :20:00 GMT \ r \ n \ n \ n-ms-version:2015-04-05 \ r \ n / []我的存储空间] / [我的存储容器] /Brownies%201.jpg'。

我注意到2015年4月22日的旧日期,并且不知道这个日期的创建地点

更新2 进一步测试显示其与链接问题完全相同的问题。第一次在UWP应用上运行然后例外

0 个答案:

没有答案