好的,我会在这里直截了当。我成功调用了Windows Azure Analytic Services的REST API,用于获取和设置Blob日志记录和指标的设置。
但是,当我给它一个表和队列时,我收到以下错误消息:
AuthenticationFailed
服务器无法验证请求。确保正确形成Authorization标头的值,包括签名。 RequestId:9d4436e0-9367-46ed-9967-b3ebe888d2f8发布时间:2012-01-16T09:20:09.5141262Z
我用来签名的字符串如下:
GET\n\n\n\n\n\n\n\n\n\n\n\nx-ms-date:Mon, 16 Jan 2012 09:04:50 GMT\nx-ms-version:2011-0818\n/<accountname>/\ncomp:properties\nrestype:service
。它适用于Blob。
最棘手的是我在分析服务的回复中没有得到AuthenticationErrorDetail
。当我尝试为Blob调用设置REST API时,我实际上有一个AuthenticationErrorDetail
告诉我服务器用来签名的字符串。这真的帮助我构建了上述内容。
还有其他人经历过类似的事吗?
答案 0 :(得分:0)
我意识到我的REST调用也适用于队列。但是,它不适用于表格。
http://msdn.microsoft.com/en-us/library/windowsazure/dd179428.aspx提供了更多信息:
2009-09-19共享密钥精简版和表格服务格式
此格式支持所有版本的共享密钥和共享密钥精简版 表服务和2009-09-19版本的Shared Key Lite Blob和队列服务。此格式与使用的格式相同 与以前版本的存储服务。构建 CanonicalizedResource字符串的格式如下:
以空字符串(“”)开头,附加正斜杠(/), 后跟拥有该资源的帐户的名称 访问。
附加资源的编码URI路径。如果请求URI指向a 资源的组件,附加适当的查询字符串。该 查询字符串应包含问号和comp参数 (例如,?comp =元数据)。不应包括其他参数 在查询字符串上。
最后,它接受了路径?comp=properties
。
答案 1 :(得分:0)
我遇到了类似的问题 - blob工作正常,表无法正常工作 - 当我错误地使用DateTime.Now而不是DateTime.UtcNow for x-ms-date header