Не удается создать контейнер BLOB-объектов Azure в эмуляторе хранилища - PullRequest
0 голосов
/ 12 июня 2018

Я не могу создать контейнер при использовании эмулятора хранилища Azure из моего кода c .NET.

Я использую:

var container = serviceClient.GetContainerReference("media");
container.CreateIfNotExists();`

Возвращается ошибка Ошибка:

System.AggregateException: произошла одна или несколько ошибок.---> Microsoft.WindowsAzure.Storage.StorageException: удаленный сервер возвратил ошибку: (403) Запрещено.---> System.Net.WebException: удаленный сервер возвратил ошибку: (403) Запрещено.в System.Net.HttpWebRequest.GetResponse ()

1 Ответ

0 голосов
/ 12 июня 2018

Добавьте следующую строку:

request.UseDefaultCredentials = true;

Это позволит приложению использовать учетные данные вошедшего в систему пользователя для доступа к сайту.Если он возвращает 403. Очевидно, он ожидает аутентификацию.

Также возможно, что у вас (сейчас?) Есть прокси-сервер аутентификации между вами и удаленным сайтом.В этом случае попробуйте:

request.Proxy.Credentials = System.Net.CredentialCache.DefaultCredentials;

Вы можете установить строку подключения для эмулятора хранилища в app.config:

<appSettings>
  <add key="StorageConnectionString" value="UseDevelopmentStorage=true" />
</appSettings>

Если вы хотитеподключитесь к эмулятору хранилища, используя имя учетной записи и ключ, вам потребуется указать дополнительные сведения, например, различные конечные точки.

var connectionString = @"DefaultEndpointsProtocol=http;AccountName=devstoreaccount1;
AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;
    BlobEndpoint=http://127.0.0.1:10000/devstoreaccount1;
    TableEndpoint=http://127.0.0.1:10002/devstoreaccount1;
    QueueEndpoint=http://127.0.0.1:10001/devstoreaccount1;";

Это значение идентично ярлыку, показанному выше, UseDevelopmentStorage=true.

...