gpt4 book ai didi

c# - 使用类库访问 Windows Azure 存储

转载 作者:行者123 更新时间:2023-12-02 19:36:44 25 4
gpt4 key购买 nike

我正在尝试使用 Windows Azure 开发多层云应用程序。为了存储我的数据,我选择了 Azure 存储表和 Azure 存储 Blob。

我的应用程序的不同层使用相同的功能集,但方式不同。例如它们都必须能够访问 blob。我决定创建单个类库来访问 Windows Azure Blob 存储,但我遇到了 400 错误。

当我直接从我的辅助角色连接到 Blob 时,它工作正常,但是当我从类库调用类时,它会失败并显示 400 状态代码(错误请求)。这是我的代码:

public class TestClass
{

public static void Test()
{
string s = CloudConfigurationManager.GetSetting("StorageCS");
CloudStorageAccount account = CloudStorageAccount.Parse
(
s
);

CloudBlobClient client = account.CreateCloudBlobClient();

CloudBlobContainer container =
client.GetContainerReference("mycontainer");

container.CreateIfNotExists(BlobContainerPublicAccessType.Blob);

}

}

这是一个仅尝试访问 blob 容器的测试类。当我在我的 worker 角色中使用这个类时,它工作得很好。如果我从另一个辅助角色引用此辅助角色并在第二个角色中使用此类,则它可以工作,但如果我将此类移至外部类库,则它会失败。行“container.CreateIfNotExists(BlobContainerPublicAccessType.Blob);”引发异常这是一个 StorageException,带有“400”。 “错误请求”消息。

我正在使用 Azure 存储模拟器。使用调试器,我检查了 CloudStorageAccount.Parse 方法是否有正确的连接字符串(“UseDevelopmentStorage=true”),无论如何使用(直接形成类库,来自其他辅助角色)类。似乎无法使用类库访问Azure存储?

最佳答案

请检查您的类库项目中存储客户端库的版本。很可能是 3.0.0.0 版本。如果是这种情况,请注意当前版本的存储客户端库 3.0.0.0 与存储模拟器(开发存储)不兼容。这是因为该库使用最新版本的存储 REST API,而模拟器仅支持该版本之前的版本。存储团队博客中强调了兼容性问题:http://blogs.msdn.com/b/windowsazurestorage/archive/2013/11/27/windows-azure-storage-release-introducing-cors-json-minute-metrics-and-more.aspx (请阅读文章末尾的“存储模拟器指南”部分)

我的建议是将存储客户端库降级到以前的版本 (2.1.0.4)。您可以通过 Nuget Package Manager 控制台安装此版本,并在其中键入以下命令:Install-Package WindowsAzure.Storage -Version 2.1.0.4

关于c# - 使用类库访问 Windows Azure 存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20553207/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com