【问题标题】:Azure October 2012 SDK broke UseDevelopmentStorage=trueAzure 2012 年 10 月 SDK 破坏了 UseDevelopmentStorage=true
【发布时间】:2013-12-31 20:02:17
【问题描述】:

有没有人尝试过使用 usedevelopmentstorage=true 连接字符串的 2012 年 10 月 Azure sdk?

CloudStorageAccount.Parse("UseDevelopmentStorage=true")

抛出“字典中不存在给定键”异常。

CloudStorageAccount.DevelopmentStorageAccount 

工作正常。

这是 azure sdk 中的错误吗?

【问题讨论】:

  • 十月的SDK是1.7的吗?如果是这样,我不会收到此错误。

标签: c# azure


【解决方案1】:

这是存储 SDK v2.0.0.0 中的一个错误(如果您正在使用开发存储,它要求您在连接字符串中使用 DevelopmentStorageProxyUri)。这些是解决方法:

  • 不要使用模拟器
  • 运行提琴手并通过DevelopmentStorageProxyUri设置:CloudStorageAccount.Parse("UseDevelopmentStorage=true;DevelopmentStorageProxyUri=http://ipv4.fiddler");
  • 直接引用存储帐户:CloudStorageAccount.DevelopmentStorageAccount;

【讨论】:

  • 真是一堆废话。我厌倦了对 SCL v2 的“升级”。到目前为止,它占据了我生命的 4 小时。这是(毒)蛋糕上的糖霜
  • 我在 v2.0.3.0 中出现此错误。第二个解决方法建议效果很好。
【解决方案2】:

此问题已在通过 GitHubNuGet 提供的最新版本(版本 2.0.1)中得到解决。

对于由此可能造成的任何不便,我们深表歉意。

【讨论】:

    【解决方案3】:

    用途:

    UseDevelopmentStorage=true;DevelopmentStorageProxyUri=http://127.0.0.1
    

    这是以下的简写:

    BlobEndpoint=http://127.0.0.1:10000/devstoreaccount1;QueueEndpoint=http://127.0.0.1:10001/devstoreaccount1;TableEndpoint=http://127.0.0.1:10002/devstoreaccount1;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==
    

    【讨论】:

    • 谢谢,这对我有用(并且是解决问题的最简单方法)。
    • 当我将该连接字符串与 2.2 SDK 一起使用时,我收到 400 错误(错误请求)。 (使用由端点和开发人员存储密钥组成的连接字符串时,我得到了 403(禁止))。有谁知道这个连接字符串是否应该与 SDK 2.2 一起使用?
    • 使用 DevelopmentStorageProxyUri=ipv4.fiddler,提琴手显示存储模拟器正在返回错误请求“HTTP 标头之一的值格式不正确”。标头是“User-Agent:WA-Storage/3.0.1...”和“授权:SharedKey devstoreaccount1:”主机是127.0.0.1:10000,请求是“HEAD /devstoreaccount1/images?restype=container&timeout=90"(我正在向 CreateIfNotExists() 请求名为 images 的容器。
    • 你不使用 v2 版本,你使用 v3 版本的 Azure 存储。此版本与模拟器不兼容。 social.technet.microsoft.com/Forums/windowsazure/en-US/… 。这解释了为什么您会收到 400 错误。降级到最新v2.1版本:nuget.org/packages/WindowsAzure.Storage
    【解决方案4】:

    对于那些在使用最新的 SKD + Nuget 包时遇到问题的人。如果您使用的是 v3 版本的 nugget 包 (WindowsAzure.Storage),您将收到 400 错误请求异常。此版本与模拟器不兼容。 http://social.technet.microsoft.com/Forums/windowsazure/en-US/0fb01e56-8a52-4e98-a8bf-dd517d86d879/windows-azure-storage-developmentstorageaccount-cloudtablecreateifnotexists-always-get-400-http?forum=windowsazuredevelopment

    降级到最新的 v2.1 版本:https://www.nuget.org/packages/WindowsAzure.Storage,一切顺利。打开包管理器控制台并执行以下操作:

    uninstall-package WindowsAzure.Storage    
    install-package WindowsAzure.Storage -version 2.1.0.4
    

    【讨论】:

      【解决方案5】:

      @斯蒂沃曼,

      这确实有效,谢谢! (而且无需解雇提琴手)

      但似乎仍然能够破坏一些代码,因为端点是 http://127.0.0.1:10000/devstoreaccount1 而来自真实字符串的正常解析将得到 https://something.blob.core.windows.net/ 注意最后一个斜线。如果一个 URI 将多个部分组合在一起,则需要小心。

      【讨论】:

        猜你喜欢
        • 2012-10-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-10-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-06-25
        相关资源
        最近更新 更多