问题
I'm running the following code in a unit test against Azure's Storage Emulator and receiving a StorageException when I attempt to create the container:
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();
The Storage Emulator is running and the Blob service is supposedly running at:
http://127.0.0.1:10000/
The exception is:
Microsoft.WindowsAzure.Storage.StorageException : The remote server returned an error: (403) Forbidden.
Any thoughts? Is this possible from a unit test?
回答1:
Please change your connection string from:
var connectionString = @"DefaultEndpointsProtocol=http;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==";
to
var connectionString = "UseDevelopmentStorage=true";
That should take care of the problem you're facing.
回答2:
container.SetPermissions(
new BlobContainerPermissions
{
PublicAccess =
BlobContainerPublicAccessType.Blob
});
When initialize connection. But first, use a Client for Storage and change permission of container using the Client.
Works for me ;)
来源:https://stackoverflow.com/questions/17500433/getting-a-storageexception-403-forbidden-on-cloudstoragecontainer-getcontaine