10

当尝试对 Azure 表存储进行批量插入时,我得到StorageExceptionCloudTable.ExecuteBatch()

TableBatchOperation batchOperation = new TableBatchOperation();

foreach (var entity in entities)
{
    batchOperation.InsertOrReplace(entity);
}

table.ExecuteBatch(batchOperation);

抛出异常:

Microsoft.WindowsAzure.Storage.StorageException:操作的意外响应代码:e:\projects\azure- 中 Microsoft.WindowsAzure.Storage.Core.Executor.Executor.ExecuteSync[T](StorageCommandBase1 cmd, IRetryPolicy policy, OperationContext operationContext) 中的 6 sdk-for-net\microsoft-azure-api\Services\Storage\Lib\DotNetCommon\Core\Executor\Executor.cs:Microsoft.WindowsAzure.Storage.Table.TableBatchOperation.Execute 的第 737 行(CloudTableClient 客户端,字符串表名,TableRequestOptions requestOptions, OperationContext operationContext) 在 e:\projects\azure-sdk-for-net\microsoft-azure-api\Services\Storage\Lib\DotNetCommon\Table\TableBatchOperation.cs:Microsoft.WindowsAzure.Storage.Table 的第 85 行。 CloudTable.ExecuteBatch(TableBatchOperation 批处理, TableRequestOptions requestOptions,OperationContext operationContext) 在 e:\projects\azure-sdk-for-net\microsoft-azure-api\Services\Storage\Lib\DotNetCommon\Table\CloudTable.cs:Library.Modules.Cloud.TableStorage.StorageTableRepository 的第 165 行1.InsertOrReplaceBatch(List1 个实体)

正常使用插入这些实体TableOperation不会给我带来任何问题。

我在 Internet 或 MSDN 参考资料中的任何地方都找不到此异常。

4

1 回答 1

15

这是由于重复RowKey值。即使使用TableBatchOperation.InsertOrReplace(entities),行键仍然需要是唯一的。

Unexpected response code for operation : 6指的是列表中的第 6 个元素。在我看来,Azure SDK 中的错误代码非常具有误导性。

于 2013-11-15T08:00:07.090 回答