尝试对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引用中的任何地方找到此异常。
答案 0 :(得分:15)
这是由于重复的RowKey
值。即使使用TableBatchOperation.InsertOrReplace(entities)
,行键仍然必须是唯一的。
Unexpected response code for operation : 6
指的是列表中的第6个元素。我认为Azure SDK中的错误代码非常具有误导性。