在CloudStorageContainer GetContainerReference方法上获取StorageException(403:Forbidden)

时间:2013-07-06 06:41:01

标签: azure azure-storage-blobs azure-storage-emulator

我在Azure的存储模拟器的单元测试中运行以下代码,并在尝试创建容器时收到StorageException:

var connectionString = @"DefaultEndpointsProtocol=http;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==";
var account = CloudStorageAccount.Parse(connectionString);
var client = account.CreateCloudBlobClient();
var container = client.GetContainerReference("my-container");
container.CreateIfNotExists();

存储模拟器正在运行,Blob服务应该在以下位置运行:

http://127.0.0.1:10000/

例外是:

  

Microsoft.WindowsAzure.Storage.StorageException:远程服务器   返回错误:(403)禁止。

有什么想法?这可能来自单元测试吗?

2 个答案:

答案 0 :(得分:10)

请更改您的连接字符串:

var connectionString = @"DefaultEndpointsProtocol=http;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==";

var connectionString = "UseDevelopmentStorage=true";

这应该照顾你所面临的问题。

答案 1 :(得分:0)

container.SetPermissions(
                    new BlobContainerPermissions
                    {
                        PublicAccess =
                            BlobContainerPublicAccessType.Blob
                    });

初始化连接时。 但首先,使用Client for Storage并使用Client更改容器的权限。

适合我;)