Visual studio 2022 与 azurite 集成 (v3.14.1) 在创建本地 blob 容器时给出错误消息 InvalidHeaderValue

Visual studio 2022 with azurite integrated (v3.14.1) In creation of local blob container gives error message 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 版本高于 Azurite,Azurite 将为 x-ms-version return InvalidHeaderValue 错误(HTTP 状态代码 400 - 错误请求)。

什么是正确的,因为在 api 错误消息中它声称有一个 headervalue:HeaderValue:2021-04-10(Azurite 的最新 api 版本 3.16.0 是什么,请参阅github)。 如果您再次查看 Headers 中的错误,是 azurite(server) AZurite-blob/3.14.1 。 VS2022 自带的版本。因此,这意味着标头值来自最新的 azurite 版本,但使用的 azurite 服务器是版本 3.14.1

我的问题是如何将本地 azurite 版本升级到 3.16.0 或将某些使用 v3.16.0 的进程降级到 3.14.1

我希望有人能帮助我。提前致谢。

每个版本的 SDK 以及 Azurite 都针对特定的 REST API 版本。您收到此错误的原因是因为安装的 Azurite 版本针对的 REST API 版本比您正在使用的 SDK 版本旧。

两种可能的解决方案:

  1. 升级Azurite版本:如果您已经通过npm安装了Azurite,只需执行以下命令即可升级到最新版本的Azurite。
npm update -g azurite
  1. 降级SDK版本:您可以将SDK版本从12.11.0降级到12.10.0。请在降级前检查 changelog 以确保您的代码未使用任何特定于最新版本的内容。您将需要卸载版本 12.11.0,然后安装 12.10.0。