来自CloudTable.ExecuteBatch(..)的意外响应代码

时间:2013-11-14 11:47:14

标签: c# azure azure-storage azure-table-storage

尝试对Azure表存储执行批量插入时,我在StorageException上收到CloudTable.ExecuteBatch()

TableBatchOperation batchOperation = new TableBatchOperation();

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

table.ExecuteBatch(batchOperation);

抛出异常:

  

Microsoft.WindowsAzure.Storage.StorageException:意外的响应   操作代码:6 at   Microsoft.WindowsAzure.Storage.Core.Executor.Executor.ExecuteSync [T](StorageCommandBase1   cmd,IRetryPolicy策略,OperationContext operationContext)in   E:\项目\ Azure的SDK换网\微软Azure的API \ SERVICES \存储\ LIB \ DotNetCommon \核心\执行人\ Executor.cs:行   737在   Microsoft.WindowsAzure.Storage.Table.TableBatchOperation.Execute(CloudTableClient   client,String tableName,TableRequestOptions requestOptions,   OperationContext operationContext)in   E:\项目\ Azure的SDK换网\微软Azure的API \ SERVICES \存储\ LIB \ DotNetCommon \表\ TableBatchOperation.cs:行   85点   Microsoft.WindowsAzure.Storage.Table.CloudTable.ExecuteBatch(TableBatchOperation   batch,TableRequestOptions requestOptions,OperationContext   operationContext)in   E:\项目\ Azure的SDK换网\微软Azure的API \ SERVICES \存储\ LIB \ DotNetCommon \表\ CloudTable.cs:行   165点   Library.Modules.Cloud.TableStorage.StorageTableRepository 1.InsertOrReplaceBatch(List 1   实体)

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

我无法在互联网或MSDN引用中的任何地方找到此异常。

1 个答案:

答案 0 :(得分:15)

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

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