远程服务器返回错误:(403)禁止在container.CreateIfNotExistsAsync()方法

时间:2014-10-24 12:54:17

标签: c# azure azure-storage-blobs

 static class StorageUtils
    {
        public static CloudStorageAccount StorageAccount
        {
            get
            {
                string account = ConfigurationManager.AppSettings["StorageAccountName"];
                //string account = CloudConfigurationManager.GetSetting("StorageAccountName");

                //string key = CloudConfigurationManager.GetSetting("StorageAccountAccessKey");
                string key = ConfigurationManager.AppSettings["StorageAccountName"];
                string connectionString = String.Format("DefaultEndpointsProtocol=https;AccountName={0};AccountKey={1}", account, key);
                return CloudStorageAccount.Parse(connectionString);
            }
        }
    }

我有一个网络项目,我将其转换为“MS Azure云服务项目”

我使Azure项目默认并运行CreateAndConfigureAsync()来创建容器。 它工作正常,并在Azure存储中创建图像容器。

然后我将我的Web项目设为默认值,并在StorageUtils类中将CloudConfigurationManager.GetSetting更改为ConfigurationManager.AppSettings并运行Web应用程序项目。 然后我得到“远程服务器返回错误:(403)禁止”错误时 container.CreateIfNotExistsAsync()行被执行。

这是什么原因?

async public void CreateAndConfigureAsync()
        {
            try
            {
                CloudStorageAccount storageAccount = StorageUtils.StorageAccount;

                // Create a blob client and retrieve reference to images container
                CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
                CloudBlobContainer container = blobClient.GetContainerReference("images");

                // Create the "images" container if it doesn't already exist.
                if (await container.CreateIfNotExistsAsync())
                {
                    // Enable public access on the newly created "images" container
                    await container.SetPermissionsAsync(
                        new BlobContainerPermissions
                        {
                            PublicAccess =
                                BlobContainerPublicAccessType.Blob
                        });
                }
            }
            catch (Exception ex)
            {            }
        }

我正在关注编码 http://azure.microsoft.com/en-us/documentation/articles/storage-dotnet-how-to-use-blobs/#upload-blob

1 个答案:

答案 0 :(得分:0)

从您的第一个代码段开始:

string key = ConfigurationManager.AppSettings["StorageAccountName"];

这应该是:

string key = ConfigurationManager.AppSettings["StorageAccountAccessKey"];