【问题标题】:windows Azure weird behaviour while saving entity into windows Azure table storage将实体保存到 Windows Azure 表存储时的 Windows Azure 奇怪行为
【发布时间】:2012-12-20 13:09:44
【问题描述】:

我正在将一批实体保存到 Azure 表存储中,对于某些实体,它可以完美地保存到同一张表的表存储中。但是有些记录,Table storage下面会抛出异常。

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

有没有遇到过上述错误。

-马亨德

【问题讨论】:

    标签: azure azure-storage


    【解决方案1】:

    添加到@knightpfhor 答案:

    您的错误消息中的

    48”表示您的批次中的实体 #48 存在问题。除了上述可能的罪魁祸首外,请检查该实体的 PartitionKey 值。批次中的所有实体必须具有相同的 PartitionKey 值。还要检查您是否在批次中包含两次相同的实体。一个实体(即唯一的 PartitionKey/RowKey 组合)在一个批次中只能出现一次。

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

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

    【讨论】:

      【解决方案2】:

      此错误通常与它所说的完全一致,因为您的某些记录具有无法保存的值,因为它们超出了范围。常见的罪魁祸首通常是具有无效值的 PartitionKey 或 RowKey,或者您正在尝试保存表存储不支持的类型。有关您可以使用的信息,请参阅MSDN documentation

      【讨论】:

        【解决方案3】:

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

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

        旁注:在授权头计算过程中,stringToSign 有 CanonicalResource。用于查询日志表中所有实体以获取 azure 模拟存储的 CanonicalResource 为 /devstoreaccount1/devstoreaccount1/logs(),其中 azure myaccount 存储帐户为 /myaccount/logs()。请注意存储帐户重复两次以进行模拟存储。

        【讨论】:

          猜你喜欢
          • 2021-12-08
          • 2011-09-17
          • 2011-09-18
          • 2013-01-01
          • 1970-01-01
          • 2012-09-19
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多