在尝试CreateIfNotExists时使用Azure存储模拟器时,我突然收到错误请求(400)错误。对内部异常的响应说:“其中一个HTTP标头的值格式不正确。”所有表都存在,数据在表中,所有内容都在处理,直到我的NuGet包更新。环顾四周似乎是一个常见的原因是Azure存储客户端库(现在5.0.0)的更新导致了不匹配。我将Azure SDK更新为2.6(因为我有VS2012)。这使存储仿真器达到4.0.0.0,但仍然没有运气......同样的错误。这是一件坏事,突然对包的一个包的更新导致整个事情破坏并完全杀死我的相当大的项目。有任何想法吗?
答案 0 :(得分:13)
在我的情况下,问题出在容器名称,它有严格的命名要求。
即:
- 仅允许小写字母,数字和短划线
- 必须为3到63个字符
有关详细信息,请在MSDN上查看Naming and Referencing Containers, Blobs, and Metadata。
答案 1 :(得分:7)
我不知道这对其他人来说是否是一个问题,但这是我已经想到的......
。
我的"哲学"整件事的问题是......
我了解存储客户端库在技术上并不依赖于"在模拟器上......您不需要模拟器来使用Azure存储。但是,如果像我这样的软件中的某些关系更容易理解,那就太好了。
答案 2 :(得分:1)
对我来说,升级到当前最新的WindowsAzure.Storage version 9.3.1
软件包时遇到了这个问题。
尝试了数小时的容器名称和其他内容的各种组合后,最简单的解决方案是回滚到较旧的version 8.6.0
上!
答案 3 :(得分:0)
如果我没弄错的话,您还需要将客户端库降级到4.x.
您可以看到,每个版本的存储客户端库对应一个存储服务REST API版本,同样适用于存储模拟器。如果您使用存储模拟器4.0版,则无法使用存储客户端库5。您需要使用版本4.x。
如果要使用存储客户端库版本5,则有2个选项: