Azure.Storage.Blobs本地开发报错:HTTP头格式不正确
问题:升级Azure.Storage.Blobs后Azurite报InvalidHeaderValue错误
问题背景
将Microsoft.Azure.Blob升级到Azure.Storage.Blobs后,单元测试中调用container.Exists()时抛出RequestFailedException,提示**"其中一个HTTP头的值格式不正确"**,而非权限错误。使用UseDevelopmentStorage=true连接字符串,也尝试过Azure Storage Explorer提供的连接字符串,问题依旧。怀疑是Azurite与最新存储库的兼容性问题,或单元测试配置问题。
相关代码
// 创建服务客户端: var blobServiceClient = new BlobServiceClient("UseDevelopmentStorage=true"); // 创建容器 BlobContainerClient container = blobServiceClient.GetBlobContainerClient(containerName); // 调用container.Exists()时报错:RequestFailedException - "其中一个HTTP头的值格式不正确" if(!container.Exists()) container = blobServiceClient.CreateBlobContainer(containerName).Value; BlobClient blobClient = container.GetBlobClient($"{blobName}.json"); await blobClient.UploadAsync(BinaryData.FromString(jsonContent), options);
错误详情
其中一个HTTP头的值格式不正确。 RequestId:5b9f9072-606b-4dfa-b174-19ef2fa2c20d Time:2023-01-27T00:02:23.357Z 状态: 400 (其中一个HTTP头的值格式不正确。) 错误代码: InvalidHeaderValue 附加信息: HeaderName: x-ms-version HeaderValue: 2021-10-04 内容: <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <Error> <Code>InvalidHeaderValue</Code> <Message>其中一个HTTP头的值格式不正确。 RequestId:5b9f9072-606b-4dfa-b174-19ef2fa2c20d Time:2023-01-27T00:02:23.357Z</Message> <HeaderName>x-ms-version</HeaderName> <HeaderValue>2021-10-04</HeaderValue> </Error> 响应头: Server: Azurite-Blob/3.17.1 x-ms-error-code: InvalidHeaderValue x-ms-request-id: 5b9f9072-606b-4dfa-b174-19ef2fa2c20d Date: Fri, 27 Jan 2023 00:02:23 GMT Connection: keep-alive Keep-Alive: REDACTED Transfer-Encoding: chunked Content-Type: application/xml
解决方案
- 升级Azurite版本:当前使用的Azurite 3.17.1版本不支持
Azure.Storage.Blobs库默认使用的2021-10-04API版本。若通过npm安装,执行命令npm install -g azurite更新到最新版;若为桌面安装包,前往官方发布渠道下载并重新安装。 - 重启服务验证:升级完成后重启Azurite服务,重新运行单元测试,确认
container.Exists()等操作可正常执行。
内容的提问来源于stack exchange,提问作者macm
相关产品推荐
相关产品推荐

