Я пытаюсь разработать многоуровневое облачное приложение с использованием Windows Azure. Чтобы сохранить свои данные, я выбрал Таблицы хранения Azure и Blores Azure Storage.Доступ к хранилищу Windows Azure с использованием библиотеки классов
Различные уровни моего приложения используют один и тот же набор функций, но по-разному. например все они должны иметь доступ к блобам. Я решил создать библиотеку отдельных классов для доступа к хранилищу Windows Azure Blob, но я столкнулся с ошибкой 400.
Когда я подключаюсь к Blobs непосредственно из моей рабочей роли, он работает нормально, но когда я вызываю класс из библиотеки классов, он не работает с 400 кодом состояния (Bad Request). Вот мой код:
public class TestClass
{
public static void Test()
{
string s = CloudConfigurationManager.GetSetting("StorageCS");
CloudStorageAccount account = CloudStorageAccount.Parse
(
s
);
CloudBlobClient client = account.CreateCloudBlobClient();
CloudBlobContainer container =
client.GetContainerReference("mycontainer");
container.CreateIfNotExists(BlobContainerPublicAccessType.Blob);
}
}
Это тестовый класс, который просто пытается получить доступ блоб контейнер. Когда я использую этот класс внутри моей рабочей роли, он отлично работает. Если я ссылаюсь на эту рабочую роль из другой рабочей роли и использую этот класс во второй роли, она работает, но если я переведу этот класс во внешнюю библиотеку классов, это не сработает. Исключение выбрано в строке 'container.CreateIfNotExists (BlobContainerPublicAccessType.Blob);' Это StorageException, с «400». Плохой запрос ".
Я использую эмулятор Azure Storage Emulator. Используя отладчик, я проверил, что для метода CloudStorageAccount.Parse используется строка корневого соединения («UseDevelopmentStorage = true»), независимо от того, как используется класс (непосредственно, библиотека классов классов из другой рабочей роли). Кажется, что доступ к Azure Storage нельзя использовать с помощью библиотеки классов?
Нет, вы можете получить доступ к Azure. Когда вы используете эмулятор, он использует хранилище для разработки, он локальный. У вас есть учетная запись на Azure? – Matt