我正在尝试使用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存储?