C# 尝试从Azure下载blob信息时发生授权错误

C# 尝试从Azure下载blob信息时发生授权错误,c#,azure,.net-4.5,windows-phone-8.1,azure-storage-blobs,C#,Azure,.net 4.5,Windows Phone 8.1,Azure Storage Blobs,我有一个Windows应用商店应用程序,我正在为Windows Phone 8.1构建一个精简版,这两个版本都是用C#开发的。我目前将一个小文本文件保存到blob中,以便在设备之间同步数据。对于Windows应用商店应用程序,它可以完美地工作。我可以在Surface Pro、台式机和笔记本电脑之间进行同步。现在我正在我的手机应用程序中实现这一点,但我得到了一个授权错误 {Microsoft.WindowsAzure.Storage.StorageException:服务器无法对请求进行身份验证。

我有一个Windows应用商店应用程序,我正在为Windows Phone 8.1构建一个精简版,这两个版本都是用C#开发的。我目前将一个小文本文件保存到blob中,以便在设备之间同步数据。对于Windows应用商店应用程序,它可以完美地工作。我可以在Surface Pro、台式机和笔记本电脑之间进行同步。现在我正在我的手机应用程序中实现这一点,但我得到了一个授权错误

{Microsoft.WindowsAzure.Storage.StorageException:服务器无法对请求进行身份验证。请确保包含签名的授权标头的值格式正确。 在Microsoft.WindowsAzure.Storage.Core.Executor.Executor.d_u6`1.MoveNext()上 请求信息 请求ID:2ee5de0a-0f2c-477f-92df-ba52cce3b6c0 请求日期:2014年8月5日星期二20:11:25 GMT StatusMessage:服务器无法对请求进行身份验证。请确保包含签名的授权标头的值格式正确。 }

我知道通常的解决方法是检查工作站时间,所以我尝试将电话时间设置为UTC、不同时区等,但都不起作用。这是令人沮丧的,因为这是完美的工作无处不在,但手机应用程序

以下是我正在使用的代码:

StorageCredentials credentials = new StorageCredentials("<AccountName>", "<AccountKey>");

var account = new CloudStorageAccount(credentials, true);

var blobClient = account.CreateCloudBlobClient();

CloudBlobContainer container = blobClient.GetContainerReference("synccontainer");
var blockBlob = container.GetBlockBlobReference("MyBlob");

****Everything prior to here executes correctly, everything below will throw the error****

bool blockBlobExists = await container.GetBlockBlobReference("MyBlob").ExistsAsync();
await blockBlob.FetchAttributesAsync();
var bbProperties = blockBlob.Properties;
StorageCredentials-credentials=newstoragecredentials(“,”);
var account=新的CloudStorageAccount(凭证,true);
var blobClient=account.CreateCloudBlobClient();
CloudBlobContainer容器=blobClient.GetContainerReference(“synccontainer”);
var blockBlob=container.GetBlockBlobReference(“MyBlob”);
****在此之前的所有操作都会正确执行,下面的所有操作都会抛出错误****
bool blockBlobExists=wait container.GetBlockBlobReference(“MyBlob”).ExistsAsAsync();
等待blockBlob.FetchAttributesAsync();
var bbProperties=blockBlob.Properties;

blobPath变量中的值是多少?它是blob的名称,您可以在设备上检查时间吗?出现授权错误的原因之一是设备/计算机上的时间不正确。另一个原因显然是帐户密钥不正确。这是什么类型的应用程序?我是说,它是Windows Phone Silverlight应用程序吗?或者是一个通用应用程序?只是想在组合中加入一个替代方案-如果您对在特定应用程序上使用Microsoft.WindowsAzure有疑问,请尝试使用BlobStorage REST API->