【发布时间】:2013-09-17 18:49:36
【问题描述】:
在 Windows Azure 表上执行批处理操作时,我得到一个超出数组范围的操作索引。
异常
异常:Microsoft.WindowsAzure.Storage.StorageException:操作的意外响应代码:0
在 Microsoft.WindowsAzure.Storage.Core.Executor.Executor.EndExecuteAsync[T](IAsyncResult 结果) 索取资料
请求ID:e31dbcbc-8dc2-46ba-b096-9872b34072cb
请求日期:2013 年 9 月 15 日星期日 10:41:10 GMT
状态消息:已接受
错误代码:无效输入
ErrorMessage= 68:其中一个请求输入无效。
batchOperation.Count=68
从上面的错误信息可以看出,失败的操作索引为 68(从零开始),而批处理中的操作总数为 68(因此最大索引为 67)。
为什么会发生这种情况,我该如何避免?
谢谢,
【问题讨论】:
-
您能否提供更多详细信息,例如您使用的是什么版本的存储客户端库(肯定是 2.0)。它是一个什么样的应用程序?
-
我使用的是 2.0 版本的库。
-
嗯...根据这篇文章,存储异常首先是不可靠的。msdn.microsoft.com/en-us/library/windows/desktop/…
-
您能否提供确切的版本,在第一个版本中存在索引解析不正确并且总是指向第零项的问题。我建议升级到 2.0.6.1(甚至是 2.1,其中包括任务、iqueryable 等)。本质上,之所以会发生此错误,是因为批次中的一个实体导致了错误,因此整个批次自动失败。该索引将指向导致故障的项目。一个常见的错误是客户端尝试持久化超出范围的 DateTime 对象(就像 minvalue 等)。
标签: azure azure-table-storage azure-storage