使用以下代码(我混淆了实际凭据):
CloudStorageAccount cloudStorageAccount = new CloudStorageAccount(new StorageCredentials(username, key), true);
CloudQueueClient clnt = cloudStorageAccount.CreateCloudQueueClient();
string logQueueReference = "log2";
CloudQueue queue = clnt.GetQueueReference(logQueueReference);
queue.CreateIfNotExists();
生成以下请求:
HEAD /log2?comp=metadata&timeout=90 HTTP/1.1
x-ms-version: 2012-02-12
User-Agent: WA-Storage/2.0.6.0
x-ms-date: Tue, 29 Apr 2014 13:26:29 GMT
Authorization: SharedKey username:transformedkey
Host: username.queue.core.windows.net
并返回以下响应:
HTTP/1.1 403 Server failed to authenticate the request. Make sure the value of Authorization header is formed correctly including the signature.
Transfer-Encoding: chunked
Server: Microsoft-HTTPAPI/2.0
x-ms-request-id: 0cc84a81-73e1-4a8c-bf16-098af2b21149
Date: Tue, 29 Apr 2014 15:26:29 GMT
我已经仔细检查了凭据。它们是从 manage.windowsazure.com 上的对话框复制粘贴的。我在这里缺少什么?
最佳答案
虽然此 403 错误的最常见原因是帐户 key 不正确(因此我会要求您再次检查),但是如果您的计算机上的时钟关闭(也称为 clock skewness
),也可能会出现此错误。请检查计算机上的时钟并确保它没有偏离太多。有关更多详细信息,请参阅此线程: 403 error in production from WindowsAzure.Storage 。
关于azure - Windows Azure 队列返回 403 Forbidden,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23368984/