2015-09-01 60 views
7

尝试CreateIfNotExists时,使用Azure存储模拟器时突然出现错误请求(400)错误。内部异常的响应显示“其中一个HTTP标头的值的格式不正确。”所有表格都存在,数据在表格中,一切都在进行,直到更新到我的NuGet包。环顾SO看起来像是一个常见的原因是对Azure存储客户端库(现在为5.0.0)的更新造成了不匹配。我更新了Azure SDK到2.6(因为我有VS2012)。这使存储模拟器达到4.0.0.0,但仍然没有运气......同样的错误。这是一件坏事,突然对软件包的一个软件包进行更新会导致整个事件中断并彻底杀死我相当大的项目。有任何想法吗?Azure存储模拟器400错误请求

+0

您在项目中使用的是什么版本的Storage Client库? –

+0

5.0.0我也尝试了新的预发布,但它也没有工作。 – WirelessG

回答

5

我不知道这是别人的问题,但是这是我想通了......

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

我的“哲学”与这件事的问题是...

  • 我能找到存储模拟器 版本和存储客户端库版本之间没有明显的联系....号码不 “比赛”;没有错误,依赖关系或例外情况告诉您关系;我找不到任何查找,交叉引用或描述库的正确组合的表。
  • “只使用最新版本”理论不起作用,因为在过去他们发布了 的新版本的存储客户端库 (3.0.0.0),而没有工作的模拟器,现在是“最新版本”的每个 分别取决于其SDK适用于您的构建 环境(VS2012 VS VS2015)

我理解存储客户端库是不是在模拟器上技术上的“依赖” ......你不需要模拟器使用Azure存储。然而,如果这些关系中的某些关系对于像我这样的软件有点容易理解,那就好了。

+2

看起来像Storage Client Library 6.0.0正在使用REST API的2015-04-05版本,​​该版本仅在仿真器版本4.2中受支持。 –

+1

其他人有完全相同的问题,并从这里的Azure团队的响应https://github.com/Azure/azure-storage-net/issues/183是升级到存储模拟器版本4.2。 –

0

如果我没有弄错,你需要将客户端库降级到4.x。

您会发现,每个版本的存储客户端库都对应于存储服务REST API版本,存储模拟器也是如此。如果您使用存储模拟器版本4.0,则无法使用存储客户端库5。你需要使用4.x版本。

如果您想使用存储客户端库版本5,那么你有两个选择:

  1. 使用存储模拟器的最新版本,或者
  2. 做对云存储帐户的发展。
+0

存储模拟器是Azure SDK的一部分。如果你有VS2012,那么SDK是2.6。 2.6的存储模拟器是4.0.0.0。最新的Storage Client Library是5.0.0。所以你说你必须更新到SDK 2.7(因此VS2015)以获得与Client Library 5.0.0.0一起使用的Emulator版本?这似乎是一个不好的后门,迫使人们不知道它升级Visual Studio。 – WirelessG

+0

是的。要使用最新版本的存储模拟器,您需要最新的SDK(2.7),它在VS 2013和2015都支持(不幸的是VS VS 2012)。 –

+0

此外,将Storage Client Library降级到4.3.0.0(以“匹配”我的模拟器4.0.0)也不起作用。没有例外,只是每个电话都会返回一个无声的“错误”。 – WirelessG