Contexte:Windows Azure - initialisation de stockage Blob - Autorisation erreur
J'ai une application Azure avec un rôle Web qui est une application ASP.NET (C#), qui utilise une application de création de graphiques pour afficher les résultats de un calcul. L'application de cartographie a besoin d'un fichier XML en entrée. Pour accéder à ce fichier XML (référencé dans le JavaScript), j'utilise XDocument et les classes liées pour manipuler le fichier, puis l'enregistrer, le contrôle graphique est chargé lors de l'actualisation de la page.
Erreur:
Lorsque vous essayez de faire fonctionner (GetPermissions, créer, créer si n'existe pas, etc.) sur le récipient objet, je reçois l'erreur suivante:
serveur n'a pas réussi à authentifier la demande. Assurez-vous que la valeur de l'en-tête Autorisation est correctement formée, y compris la signature.
J'ai également essayé de créer le conteneur à l'avance en utilisant SpaceBlock, cela ne semblait pas devoir changer le résultat.
code:
Voici la fonction que je fais appel à Page_Load. L'erreur se produit sur la ligne en gras (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;
}
}
Essayez-vous de l'exécuter par rapport au stockage de développement ou à un compte cloud réel? Avez-vous vérifié votre chaîne de connexion? – knightpfhor