2013-01-06 27 views
0

将实体批量保存到Azure表存储,对于某些实体,它可以完美保存到同一个表的表存储中。但是有些记录,Table存储在下面抛出异常。windows Azure怪异行为,同时将实体保存到Windows Azure表存储

的ErrorMessage:在处理该请求时发生错误,InnerExceptionMessage: OutOfRangeInput 48:一个的请求输入是在范围外。 请求ID:f72230dd-55ea-4bc9-92b5-ca576af64324 时间:2013-01-05T07:16:19.4614968Z

有任何1遇到上述错误。

-Mahender

回答

0

此错误通常意味着正是它说,对于一些您的记录有无法保存,因为他们是超出范围的值。常见的罪魁祸首通常是具有无效值的PartitionKey或RowKey,或者您试图保存表存储不支持的类型。有关可以使用的信息,请参阅MSDN documentation

2

添加到@knightpfhor答案:

“”在你的错误信息表明,有一个与在批处理实体#48问题。除了上面提到的可能的罪魁祸首之外,请检查该实体的PartitionKey值。批次中的所有实体必须具有相同的PartitionKey值。同时检查你的批次中是否包含相同的实体两次。一个实体(即唯一的PartitionKey/RowKey组合)只能在批处理中出现一次。

跟踪使用Fiddler发送到存储的原始数据也是一个好主意。通过Fiddler跟踪请求/响应将帮助您查明错误。

最后,请查看此链接以获取有关实体组交易的更多信息:http://msdn.microsoft.com/en-us/library/windowsazure/dd894038.aspx

0

当使用azure table rest api查询winjs windows store应用中的实体时,我得到了这个错误,并在搜索错误时点击此处。对我来说,这是因为在更改代码以形成存储模拟器的xhr请求时发生愚蠢的错误。

计算授权标头的代码中的错误给授权标头为SharedKey devstoreaccount1/devstoreaccount1: <computed key>,而它应该是SharedKey devstoreaccount1: <computed key>。由于存储帐户名称中存在“/”字符,因此引发了此错误。

旁注:在授权标题计算期间,stringToSign具有CanonicalResource。 CanonicalResource查询日志表中所有实体以获取天蓝色模拟存储,其格式为/devstoreaccount1/devstoreaccount1/logs(),其中azure myaccount存储帐户的格式为/myaccount/logs()。注意模拟存储的重复存储帐户两次。