2013-11-14 2 views
7

При попытке сделать пакетную вставку в Azure Table Storage, я получаю StorageException на CloudTable.ExecuteBatch():Неожиданный код ответа от CloudTable.ExecuteBatch (..)

TableBatchOperation batchOperation = new TableBatchOperation(); 

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

table.ExecuteBatch(batchOperation); 

Exception брошенный:

Microsoft.WindowsAzure.Storage.StorageException: Неожиданный ответ Код для операции: 6 на Microsoft.WindowsAzure.Storage.Core.Executor.Executor.ExecuteSync [T] (StorageCommandBase1 cmd, IRetryPolicy policy, OperationContext operationContext) в e: \ projects \ azure-sdk-for-net \ microsoft-azure-api \ Services \ Storage \ Lib \ DotNetCommon \ Core \ Executor \ Executor.cs: строка 737 на Microsoft.WindowsAzure.Storage.Table.TableBatchOperation.Execute (CloudTableClient клиента, строка TABLENAME, TableRequestOptions requestOptions, OperationContext OperationContext) в е: \ проекты \ лазурь-СДК-за внутрисетевые \ Microsoft-лазурь-апи \ Services \ Хранение \ Lib \ DotNetCommon \ Таблица \ TableBatchOperation.cs: линия 85 на Microsoft.WindowsAzure.Storage.Table.CloudTable.ExecuteBatch (TableBatchOperation партия, TableRequestOptions requestOptions, OperationContext OperationContext) в e: \ projects \ azure-sdk-for-net \ microsoft-azure-api \ Services \ Storage \ Lib \ DotNetCommon \ Table \ CloudTable.cs: строка 165 на Library.Modules.Cloud.TableStorage.StorageTableRepository лица)

Установка этих объектов обычно с помощью TableOperation не дает мне никаких проблем.

Я не могу найти это исключение нигде в Интернете или в ссылках на MSDN.

+3

Можете ли вы проверить, имеют ли все сущности в партии 1) одинаковые разделы PartitionKey и 2) сущность не повторяется более одного раза в партии. На основе сообщения об ошибке просмотрите 7-ю сущность в вашей партии. Эта сущность вызывает проблему. –

ответ

14

Это произошло из-за дублирования значений RowKey. Даже с TableBatchOperation.InsertOrReplace(entities) ключи строк по-прежнему должны быть уникальными.

Unexpected response code for operation : 6 имел в виду 6-й элемент в списке. Коды ошибок в Azure SDK очень ошибочны, на мой взгляд.

+2

Коды ошибок действительно вводят в заблуждение. Я собрал [руководство по использованию Fiddler для отладки этой ошибки] (http://amadeusw.com/debugging/debugging-azure-with-fiddler/). Используйте его, чтобы найти значимую информацию об ошибках. В моем случае данные, которые я отправил, были слишком большими. –

+0

ссылка не работает :( –

+0

@AmadeuszWieczorek Может подтвердить. Ссылка не работает. – sharptooth

Смежные вопросы