Visual Studio 2022 с интегрированным азуритом (v3.14.1) При создании локального контейнера больших двоичных объектов выдается сообщение об ошибке InvalidHeaderValue

Это ошибка, которая выдается:

Headers:
Server: Azurite-Blob/3.14.1
x-ms-error-code: InvalidHeaderValue
x-ms-request-id: a3aca2f1-c0af-4af5-a54c-d7e24c188ba0
Date: Mon, 21 Mar 2022 13:22:04 GMT
Connection: keep-alive
Keep-Alive: REDACTED
Transfer-Encoding: chunked
Content-Type: application/xml

    <?xml version = "1.0" encoding = "UTF-8" standalone = "yes"?>
    <Error>
    <Code>InvalidHeaderValue</Code>
     <Message>The value for one of the HTTP headers is not in the correct format.
    RequestId:a3aca2f1-c0af-4af5-a54c-d7e24c188ba0
    Time:2022-03-21T13:22:04.189Z</Message>
    <HeaderName>x-ms-version</HeaderName>
    <HeaderValue>2021-04-10</HeaderValue>
    </Error>

Если я посмотрю на Github: https://github.com/Azure/Azurite. И прочитаю описание от:

Стратегия совместимости версий API

Если входящий запрос имеет более позднюю версию API, чем Азурите, Азурите вернет ошибку InvalidHeaderValue для версии x-ms (код состояния HTTP 400 — неверный запрос).

Что может быть правильным, потому что в сообщении об ошибке API утверждается, что есть значение заголовка: HeaderValue: 2021-04-10 (что такое новейшая версия API 3.16.0 Azurite, см. github). И если вы снова посмотрите на ошибку в заголовках, это азурит (сервер) AZurite-blob/3.14.1 . Версия, поставляемая с VS2022. Таким образом, это означает, что значение заголовка относится к последней версии азурита, но используемый сервер азурита имеет версию 3.14.1.

Мой вопрос: как я могу обновить свою локальную версию азурита до 3.16.0 или понизить версию некоторого процесса, использующего версию 3.16.0, до 3.14.1?

Я надеюсь, что кто-то может помочь мне здесь. Заранее спасибо.

Используете ли вы какой-либо пакет SDK для создания контейнера BLOB-объектов? Пожалуйста, поделитесь этими подробностями.

Gaurav Mantri 21.03.2022 15:07

Я использую пакеты nuget Azure.Storage.Blobs v12.11.0 и Azure.Storage.Common v12.10.0.

user1110336 21.03.2022 15:19
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
Как установить LAMP Stack 1/2 на Azure Linux VM
Как установить LAMP Stack 1/2 на Azure Linux VM
В дополнение к нашему предыдущему сообщению о намерении Azure прекратить поддержку Azure Database для MySQL в качестве единого сервера после 16...
2
2
103
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Каждая версия пакета SDK, а также Azurite предназначена для определенной версии REST API. Причина, по которой вы получаете эту ошибку, заключается в том, что установленная версия Азурите нацелена на более старую версию REST API, чем используемый вами пакет SDK.

Два возможных решения:

  1. Обновите версию Азурита: если вы установили Азурите через npm, просто выполните следующую команду, чтобы обновить Азурите до последней версии.
npm update -g azurite
  1. Понизить версию SDK: вы можете понизить версию SDK с 12.11.0 до 12.10.0. Пожалуйста, проверьте список изменений перед переходом на более раннюю версию, чтобы убедиться, что ваш код не использует ничего специфичного для последней версии. Вам нужно будет удалить версию 12.11.0, а затем установить 12.10.0.

Спасибо за помощь. Версия npm уже была последней версией. Итак, я решил использовать эту версию вместо интегрированной азуритовой версии VS2022. С уважением, Марк

user1110336 22.03.2022 12:22

Другие вопросы по теме