我将批量实体保存到Azure表存储中,对于某些实体,它可以完美地保存到同一个表的表存储中。但有些记录,表存储在下面抛出异常。
ErrorMessage:处理此请求时发生错误。,InnerExceptionMessage:
OutOfRangeInput
48:其中一个请求输入超出范围。
请求ID:f72230dd-55ea-4bc9-92b5-ca576af64324
时间:2013-01-05T07:16:19.4614968Z
有任何1遇到上述错误。
-Mahender
答案 0 :(得分:2)
添加到@knightpfhor回答:
错误消息中的“ 48 ”表示批次中的实体#48存在问题。除了上面提到的可能的罪魁祸首之外,请检查该实体的PartitionKey值。批处理中的所有实体必须具有相同的PartitionKey值。同时检查您的批次中是否包含两次相同的实体。实体(即唯一的PartitionKey / RowKey组合)只能在批处理中出现一次。
使用Fiddler跟踪发送到存储的原始数据也是一个好主意。通过Fiddler跟踪请求/响应将帮助您查明错误。
最后,请查看此链接,了解有关实体组交易的更多信息:http://msdn.microsoft.com/en-us/library/windowsazure/dd894038.aspx。
答案 1 :(得分:0)
此错误通常意味着它所说的内容,因为某些记录的值不能保存,因为它们超出了范围。常见的罪魁祸首通常是具有无效值的PartitionKey或RowKey,或者您正在尝试保存表存储不支持的类型。有关可以使用的内容的信息,请参阅MSDN documentation。
答案 2 :(得分:0)
当使用azure table rest api查询winjs windows store app中的实体时,我收到此错误并在搜索错误时点击此处。对我来说,这是因为在更改代码以形成存储模拟器的xhr请求时出现了愚蠢的错误。
计算授权标头的代码中的错误使授权标头为SharedKey devstoreaccount1/devstoreaccount1: <computed key>
,而它应该是SharedKey devstoreaccount1: <computed key>
。由于存储帐户名称中包含“/”字符,因此引发了此错误。
Sidenote :在授权标头计算期间,stringToSign具有CanonicalResource。 CanonicalResource在日志表中查询azure模拟存储的所有实体是/devstoreaccount1/devstoreaccount1/logs()
,其中azure myaccount存储帐户为/myaccount/logs()
。请注意,对于模拟存储,重复存储帐户两次。