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