Azure表白皮书提到,如果使用数据时出错,x-ms-request-id对于发送给Microsoft很有用。如果我确实有这样的错误,我希望我的try...catch
块可以将其保存到某处以备将来分析。
此外,我还需要在Table存储中提取ETag值。
如何在Exception出现时提取此信息并使其可用?
HTTP/1.1 204 No Content
Content-Length: 0
ETag: W/"datetime'2008-10-01T15%3A27%3A34.4838174Z'"
x-ms-request-id: 7c1b5e22-831d-403c-b88a-caa4443e75cb
答案 0 :(得分:0)
取决于您的客户端实现,但它们都是HTTP 1.1标头。
例如,(假设.NET WebRequest类)类似于:
WebRequest request = WebRequest.Create("http://myazurestore.server.com");
....
WebResponse response = request.GetResponse();
string mSRequestId = response.Headers["x-ms-request-id"];
可行吗
编辑(对于Storage Client Lib)。 ..
如果您使用的是客户端库,则可以从CloudBlob上的Properties集合中获取ETag
所以......
Cloudblob blob = container.GetBlobReference("blobname.ext");
var eTag = blob.Properties.ETag
属性是一个blobProperties对象。它应该提供对大多数所需数据的访问。
答案 1 :(得分:0)
您可能想要在CodePlex上查看我的开源Azure Table Storage Client项目。
Lucifure Stash允许轻松访问ETag以及HttpWebRequest和HttpWebResponse对象。