Фон :
У меня есть приложение Azure с одной веб-ролью, которое является приложением ASP.NET (C #), которое использует приложение для построения диаграмм для отображения результатов расчета.Приложению для построения диаграмм необходим файл XML.Для доступа к этому XML-файлу (указанному в JavaScript) я использую XDocument и связанные с ним классы для управления файлом, а затем сохраняю его, при обновлении страницы загружается элемент управления диаграммой.
Ошибка :
При попытке работать (GetPermissions, Create, Create, если не существует и т. Д.) С объектом container , я получаю следующую ошибку:
Серверу не удалось аутентифицировать запрос.Убедитесь, что значение заголовка Authorization сформировано правильно, включая подпись.
Я также пытался создать контейнер заранее с помощью SpaceBlock, похоже, это не должно было изменить результат.
Код :
Вот функция, которую я вызываю на Page_Load.Ошибка происходит на строке, выделенной жирным шрифтом (GetPermissions):
private void InitializeStorage()
{
if (storageInitialized)
{
return;
}
lock (gate)
{
if (storageInitialized)
{
return;
}
try
{
CloudStorageAccount.SetConfigurationSettingPublisher((configName, configSetter) =>
{
configSetter(RoleEnvironment.GetConfigurationSettingValue(configName));
});
// read account configuration settings
var storageAccount = CloudStorageAccount.FromConfigurationSetting("DataConnectionString");
// create blob container for images
blobStorage = storageAccount.CreateCloudBlobClient();
CloudBlobContainer container = blobStorage.GetContainerReference("xml");
// configure container for public access
**var permissions = container.GetPermissions();**
permissions.PublicAccess = BlobContainerPublicAccessType.Container;
container.SetPermissions(permissions);
CloudBlob opcBlob = container.GetBlobReference("OptionPriceChart.xml");
opcBlob.DownloadToFile("opcLocal.xml");
}
catch (WebException)
{
throw new WebException("Storage services initialization failure. "
+ "Check your storage account configuration settings. If running locally, "
+ "ensure that the Development Storage service is running.");
}
storageInitialized = true;
}
}