Azure存储模拟器400错误请求

时间:2015-09-01 00:57:34

标签: azure azure-storage-emulator

在尝试CreateIfNotExists时使用Azure存储模拟器时,我突然收到错误请求(400)错误。对内部异常的响应说:“其中一个HTTP标头的值格式不正确。”所有表都存在,数据在表中,所有内容都在处理,直到我的NuGet包更新。环顾四周似乎是一个常见的原因是Azure存储客户端库(现在5.0.0)的更新导致了不匹配。我将Azure SDK更新为2.6(因为我有VS2012)。这使存储仿真器达到4.0.0.0,但仍然没有运气......同样的错误。这是一件坏事,突然对包的一个包的更新导致整个事情破坏并完全杀死我的相当大的项目。有任何想法吗?

4 个答案:

答案 0 :(得分:13)

在我的情况下,问题出在容器名称,它有严格的命名要求。

即:

  
      
  • 仅允许小写字母,数字和短划线
  •   
  • 必须为3到63个字符
  •   

有关详细信息,请在MSDN上查看Naming and Referencing Containers, Blobs, and Metadata

答案 1 :(得分:7)

我不知道这对其他人来说是否是一个问题,但这是我已经想到的......

  • 存储模拟器4.1.0.0是与Azure存储客户端库5.0.0一起使用的模拟器
  • Azure SDK 2.7附带存储模拟器4.1.0.0。
  • Azure SDK 2.7不适用于Visual Studio 2012。
  • 适用于VS2012的Azure SDK 2.6具有Emulator 4.0.0.0。我不知道什么是Storage Client Library兼容...我试过4.3.0.0,5.0.0.0和5.0.2,但没有运气

我的"哲学"整件事的问题是......

  • 我发现存储模拟器之间没有明显的连接 版本和存储客户端库版本....数字不是 "匹配&#34 ;;没有错误,依赖关系或异常 你这段关系;我无法找到任何查找,交叉引用或 描述库的正确组合的表。
  • "只使用最新版本"理论不起作用,因为在 过去他们已经发布了新版本的Storage Client库 (3.0.0.0)没有工作模拟器,现在是"最新版本"每个 单独依赖于您的构建可用的SDK 环境(VS2012 vs VS2015)

我了解存储客户端库在技术上并不依赖于"在模拟器上......您不需要模拟器来使用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个选项:

  1. 使用最新版本的存储模拟器或
  2. 针对云存储帐户进行开发。