Подключение Azure Blob с веб-сайтом Azure

Я пытаюсь подключить веб-сайт Azure к Azure blob (где я намерен разместить некоторые файлы в контейнере, а затем захватить их с моего веб-сайта).

Я начал с этого урока: http://azure.microsoft.com/en-us/documentation/articles/web-sites-dotnet-get-started/

я развернул свой веб-сайт, а затем начал следовать этому руководство: http://azure.microsoft.com/en-us/documentation/articles/storage-dotnet-how-to-use-blobs/#setup-connection-string

поскольку я использовал веб-сайт Azure, я добавил следующий код в свой веб-сайт.файл конфигурации (в рамках проекта WebApplication1). Существует также Сеть.файл config в папке Views, но не изменить.

 <configuration>
    <appSettings>
       <add key="StorageConnectionString" 
            value="DefaultEndpointsProtocol=https;AccountName=account-name;AccountKey=account-key" />
    </appSettings>
 </configuration>

Я выполнил все шаги в учебнике и установил соответствующие пакеты NuGet, а затем включил их пространства имен в моем :

using System.Configuration;
using Microsoft.WindowsAzure.Storage;
using Microsoft.WindowsAzure.Storage.Auth;
using Microsoft.WindowsAzure.Storage.Blob;

затем я добавил следующее утверждение в ActionResult Index() метод (который выполняется по умолчанию).

CloudStorageAccount storageAccount = CloudStorageAccount.Parse(ConfigurationManager.ConnectionStrings["StorageConnectionString"].ConnectionString);

когда я пытаюсь запустить решение, я теперь получаю ошибку:

enter image description here

Я также попытался напрямую поставить значение StorageConnectionString (С моим именем учетной записи и ключом) вместо ссылки на него в следующем заявлении:

CloudStorageAccount storageAccount = CloudStorageAccount.Parse(ConfigurationManager.ConnectionStrings["DefaultEndpointsProtocol=https;AccountName=account-name;AccountKey=account-key"].ConnectionString);

Я все еще получаю ту же ошибку. Я не могу кажется, нашел что-нибудь в интернете. Есть идеи?

спасибо!

2 ответов


у вас есть принципиальная ошибка в вашем коде.

сначала вы устанавливаете AppSetting:

 <configuration>
    <appSettings>
       <add key="StorageConnectionString" 
            value="DefaultEndpointsProtocol=https;AccountName=account-   name;AccountKey=account-key" />
    </appSettings>
 </configuration>

затем вы пытаетесь получить строку подключения:

CloudStorageAccount storageAccount = CloudStorageAccount.Parse(ConfigurationManager.ConnectionStrings["StorageConnectionString"].ConnectionString);

Это просто не сработает. При установке AppSetting вам необходимо прочитать AppSetting. При установке ConnectionString необходимо прочитать строку подключения.

Итак, решение должно быть просто держать в интернете.настройте как есть и измените строку, в которой вы получаете учетную запись хранения:

CloudStorageAccount storageAccount = CloudStorageAccount.Parse(ConfigurationManager.AppSettings["StorageConnectionString"]);

или сохраните строку для строк подключения, но измените web.конфиг:

 <configuration>
    <connectionStrings>
       <add name="StorageConnectionString" 
            connectionString="DefaultEndpointsProtocol=https;AccountName=account-   name;AccountKey=account-key" providerName="System.Data.SqlClient" />
    </connectionStrings>
 </configuration>

и, конечно, вы должны поместить свои реальные значения для учетной записи облачного хранилища и ключа учетной записи хранения (account-name просто не работают).


это более плохая документация из Azure, статья действительно говорит вам создать AppSetting, а затем код говорит вам получить ConnectionString.

альтернативное исправление состоит в том, чтобы сохранить детали как ConnectionString и оставить код как есть:

<add name="StorageConnectionString" connectionString="DefaultEndpointsProtocol=https;AccountName=your-account;AccountKey=your-key" />