Azure存储模拟器400错误请求

Wir*_*ssG 8 azure azure-storage-emulator

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

Ara*_*edi 13

就我而言,问题在于容器名称,它具有严格的命名要求.

即:

  • 只允许使用小写字母,数字和短划线
  • 必须是3到63个字符

有关更多信息,请在MSDN上查看命名和引用容器,Blob和元数据.


Wir*_*ssG 7

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

  • 存储模拟器4.1.0.0是与Azure存储客户端库5.0.0一起使用的模拟器
  • Storage Emulator 4.1.0.0随Azure SDK 2.7一起提供.
  • 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,但没有运气

.

我对这件事的"哲学"问题是......

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

我知道存储客户端库在技术上并不依赖于模拟器...您不需要模拟器来使用Azure存储.但是,如果这些关系中的一些对于像我这样的软件来说更容易理解,那就太好了.

  • 看起来Storage Client Library 6.0.0使用的是2015-04-05版本的REST API,仅在仿真器版本4.2中受支持. (2认同)