我有一个Windows商店应用程序我正在为Windows Phone 8.1构建一个精简版本,这些都是用C#开发的。我目前将一个小文本文件保存到blob,以便在设备之间同步数据。对于Windows商店应用程序,它完美地工作。我可以在Surface Pro,桌面和笔记本电脑之间同步。现在我将这个实现到我的手机应用程序中,但是我收到授权错误
{Microsoft.WindowsAzure.Storage.StorageException:服务器无法验证请求。确保正确形成Authorization标头的值,包括签名。 在Microsoft.WindowsAzure.Storage.Core.Executor.Executor.d__6`1.MoveNext() 请求信息 请求ID:2ee5de0a-0f2c-477f-92df-ba52cce3b6c0 RequestDate:星期二,05八月2014 20:11:25 GMT StatusMessage:服务器无法验证请求。确保正确形成Authorization标头的值,包括签名。 }。
我知道通常的解决方法是检查工作站时间,所以我尝试将手机时间设置为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;