【发布时间】:2013-12-31 10:29:24
【问题描述】:
我正在尝试使用 Windows Azure 开发多层云应用程序。为了存储我的数据,我选择了 Azure 存储表和 Azure 存储 Blob。
我的应用程序的不同层使用相同的一组功能,但方式不同。例如他们都必须有权访问 blob。我决定制作单个类库来访问 Windows Azure Blob Storage,但遇到了 400 错误。
当我直接从我的 Worker Role 连接到 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 容器的测试类。 当我在我的工人角色中使用这个类时,它工作正常。如果我从另一个工作角色引用这个工作角色并在第二个角色中使用这个类,它可以工作,但是如果我将这个类移动到外部类库,它会失败。在“container.CreateIfNotExists(BlobContainerPublicAccessType.Blob);”行上引发异常这是一个带有 '400 的 StorageException。错误请求的消息。
我正在使用 Azure 存储模拟器。使用调试器,我检查了 CloudStorageAccount.Parse 方法是否有正确的连接字符串(“UseDevelopmentStorage=true”),无论如何(直接,表单类库,来自其他工作角色)类使用。使用类库好像不能访问 Azure Storage?
【问题讨论】:
-
不,您肯定可以访问 Azure。当您使用模拟器时,它使用开发存储,它在本地。您在 Azure 上有存储帐户吗?