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
答案 0 :(得分:0)
从您的第一个代码段开始:
string key = ConfigurationManager.AppSettings["StorageAccountName"];
这应该是:
string key = ConfigurationManager.AppSettings["StorageAccountAccessKey"];