Azure Storage Emulator 400 Bad Request

Я неожиданно получаю ошибку Bad Request (400) при использовании эмулятора Azure Storage при попытке CreateIfNotExists. Ответ на внутреннее исключение говорит: «Значение для одного из HTTP-заголовков не в правильном формате». Все таблицы существуют, данные находятся в таблицах, все работает до обновления к моим пакетам NuGet. Оглядываясь вокруг, кажется, что распространенной причиной является обновление для Azure Storage Client Library (теперь в 5.0.0), которое создает несоответствие. Я обновил Azure SDK до версии 2.6 (так как у меня есть VS2012). Это приносит эмулятору хранения до 4.0.0.0, но все равно не повезло ... такая же ошибка. Это отчасти плохо, что внезапно обновление пакета пакета пакета заставляет все это сломать и полностью убивает мой довольно большой проект. Есть идеи?

azure,azure-storage-emulator,

8

Ответов: 4


11 ов

В моем случае проблема заключалась в имени контейнера , который имеет строгие требования к именованию.

А именно:

  • Разрешены только строчные буквы, цифры и тире
  • Должно быть от 3 до 63 символов

Для получения дополнительной информации просмотрите имена и ссылки на контейнеры, флаги и метаданные в MSDN.


7 принят

Я не знаю, является ли это проблемой для кого-то еще, но это то, что я выяснил ...

  • Storage Emulator 4.1.0.0 - это тот, который будет использоваться с клиентской библиотекой Azure Storage 5.0.0.0
  • Storage Emulator 4.1.0.0 поставляется с Azure SDK 2.7.
  • Azure SDK 2.7 не будет работать с Visual Studio 2012.
  • Azure SDK 2.6 для VS2012 имеет эмулятор 4.0.0.0. Я не знаю, какая библиотека хранения данных совместима ... Я пробовал 4.3.0.0, 5.0.0.0 и 5.0.2, но не повезло

,

Мои «философские» проблемы со всем этим ...

  • Я не вижу различимого соединения между версиями эмулятора хранилища и версиями клиентской библиотеки хранилища ... Номера не «соответствуют»; нет ошибок, зависимостей или исключений, которые говорят вам об отношениях; Я не могу найти какой-либо справочной, перекрестной ссылки или таблицы, которая описывает правильную комбинацию библиотек.
  • Теория «просто использовать последнюю версию» не работает, потому что в прошлом они выпустили новые версии библиотеки Client Client (3.0.0.0) без рабочего эмулятора, и теперь «последняя версия» каждого зависит отдельно от какой SDK доступен для вашей среды сборки (VS2012 vs VS2015)

Я понимаю, что библиотека клиентов хранения не технически «зависит» от эмулятора ... вам не нужен эмулятор для использования Azure Storage. Однако было бы неплохо, если бы некоторые из этих отношений были немного проще для программного обеспечения, как я, чтобы понять.


1

Для меня это проблема при обновлении до последнего WindowsAzure.Storage version 9.3.1пакета.

После нескольких часов попыток наших комбинаций названий контейнеров и прочего, самым простым решением было вернуться к старшему и работать version 8.6.0!


0

Если я не ошибаюсь, вам нужно будет также обновить клиентские библиотеки до 4.x.

Видишь ли, каждая версия клиентской библиотеки хранения соответствует версии REST API хранилища, а также для эмулятора хранилища. Если вы используете эмулятор хранилища версии 4.0, вы не можете использовать библиотеку клиента хранилища 5 с этим. Вам нужно будет использовать версию 4.x.

Если вы хотите использовать клиентскую библиотеку хранилища версии 5, у вас есть 2 варианта:

  1. Используйте последнюю версию эмулятора хранилища или
  2. Сделайте свое развитие против учетной записи облачного хранилища.
лазури, лазурь-хранения-эмулятор,
Похожие вопросы