当前位置: 首页 > 知识库问答 >
问题:

使用类库访问Windows Azure存储

慕容宇
2023-03-14

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

我的应用程序的不同层使用同一组功能,但方式不同。e、 g.他们都必须能接触斑点。我决定使用单类库来访问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容器的测试类。当我在我的工作者角色中使用这个类时,它工作得很好。如果我从另一个工作者角色引用这个工作者角色,并在第二个角色中使用这个类,它就会工作,但如果我将这个类移动到外部类库,它就会失败。在“容器”行上引发异常。CreateIfNotExists(BlobContainerPublicAccessType.Blob);'这是StorageException,只有'400。“请求错误”消息。

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

共有1个答案

鲜于俊侠
2023-03-14

请检查类库项目中存储客户端库的版本。很可能是3.0.0.0版。如果是这种情况,请注意,当前版本3.0.0.0的storage client library与storage emulator(开发存储)不兼容。这是因为该库使用了最新版本的storage REST API,而emulator只支持之前的版本。存储团队博客中强调了兼容性问题: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。存储-版本2.1.0.4

 类似资料:
  • 我需要从消费者内部访问saga存储库,以读取与正在消费的消息相关的saga的当前状态。 场景:我有一个外部服务,当这个服务使用来自传奇的事件时,我想看看传奇是否仍然处于正确的状态,因为如果同时传奇改变了状态,消费者必须跳过事件。 如何:我当然可以通过使用它的本机框架来查询选择的saga存储库实现,但是我想使用一个抽象,一个接口,从消费者内部加载saga状态,以便将来能够切换到不同的存储库实现。 感

  • 我正在使用JGit访问远程Git回购,我需要为此使用SSH。JGit使用JSch提供安全访问。但是,我不确定如何设置JGit的密钥文件和知道主机文件。我所尝试的如下。 创建SshSessionFactory的自定义配置,通过子类化JSchConfigSessionFactory使用: 在我访问远程Git回购的类中,执行了以下操作: 我不知道如何将这个JSch对象与JGit关联,以便它能够成功地连接

  • 我正在尝试使用scala中的google云存储java库来列出bucket中的项目 然而我得到了 我的电子邮件帐户可以访问桶,我可以通过在我的帐户中创建一个项目来使用gsutil访问它。我已经在我的帐户中的项目中创建了xxx@developer.gserviceaccount.com,有什么想法可以设置权限吗?

  • 问题内容: 我正在尝试在可访问我的私人git存储库的Docker容器中添加一个私钥。testing_git文件位于包含Dockerfile的文件夹中。我正在尝试制作一个可以动态提取git代码的容器。 这是我的Dockerfile: 输出: 因此,当我使用相同的密钥时,可以访问我的存储库。 谁能告诉我我想念的东西吗? 问题答案: 错误消息不是在抱怨您的私钥,而是在抱怨github.com的主机密钥。

  • 我正在尝试在从CrudRepository扩展的存储库接口上执行我试图在方法中使用存储库实现来执行此操作。当我运行以下代码时,线程在 UpdateTasksService List 中永久等待

  • 我没有找到任何关于在前端端实现逻辑来管理Azure密钥库的可能性的信息。同时,我创建了一个Node JS服务器项目使用ENV来管理Azure Key Vault,它工作成功,但我想在我的Angular应用程序中得到同样的效果。