не удается подключиться к хранилищу таблиц Azure

Я работаю над новым веб-приложением и пытаюсь подключиться к существующему хранилищу таблиц Azure.

using System.Web.Mvc;
using Microsoft.Azure;
using Microsoft.WindowsAzure.Storage;
using Microsoft.WindowsAzure.Storage.Table;
using System;

namespace WebApplication3.Controllers
{
public class GetEmailAddressesController : Controller
{
   public ActionResult Address()
    {
        string emails = "";

        // Parse the connection string and return a reference to the storage account.
        CloudStorageAccount storageAccount = CloudStorageAccount.Parse(
            CloudConfigurationManager.GetSetting("________"));

        // Create the table client.
        CloudTableClient tableClient = storageAccount.CreateCloudTableClient();

        CloudTable table = tableClient.GetTableReference("experimentsEmailAddresses");

        // Construct a table query.
        TableQuery<TableData> query = new TableQuery<TableData>();

        foreach (TableData entity in table.ExecuteQuery(query))
        {
            emails += entity.Email + ";";

        }

        ViewBag.Message = " " + emails;
        return View();
    }

}
} 

Код скомпилируется, но когда я запускаю его в режиме отладки, я получаю сообщение об ошибке:

System.ArgumentNullException: «Значение не может быть нулевым. Имя параметра: connectionString'

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

Какое лучшее решение для этого?


person I.zv    schedule 11.11.2018    source источник
comment
Где вы храните строку подключения в файле конфигурации?   -  person Rob Reagan    schedule 11.11.2018
comment
в web.config я добавил ‹добавить ключ=StorageConnectionString value=___ /›   -  person I.zv    schedule 11.11.2018
comment
В частности, он находится в разделе appSettings или connectionStrings?   -  person Rob Reagan    schedule 11.11.2018
comment
это в настройках приложения   -  person I.zv    schedule 11.11.2018
comment
Еще одно мое предложение: 1. Пройти и убедиться, что CloudConfigurationManager.GetSetting(________)); возвращает то, что вы думаете. 2. Возьмите строку подключения, возвращенную вашим приложением, и попытайтесь подключиться через Azure Storage Explorer.   -  person Rob Reagan    schedule 11.11.2018
comment
Я не уверен, почему это не работает для вас, я могу работать с этим со своей стороны. Если вы все еще не можете работать, вы можете использовать типичный способ получения значений WebConfigurationManager.AppSettings["StorageConnectionString"]   -  person Jayendran    schedule 12.11.2018
comment
Я тестирую код, он работает хорошо. И я также пытался воспроизвести ошибку, ошибка появлялась только тогда, когда строка StorageConnectionString в app.config имеет значение null или ваше правописание не соответствует строке CloudConfigurationManager.GetSetting(________)) .So возможно, вы можете проверить, правильно ли вы настроили app.config.   -  person George Chen    schedule 12.11.2018
comment
Вы можете проверить app.config, ссылаясь на docs.microsoft.com/en -us/azure/cosmos-db/   -  person George Chen    schedule 12.11.2018


Ответы (2)


я изменил

CloudStorageAccount storageAccount = CloudStorageAccount.Parse(
    CloudConfigurationManager.GetSetting("StorageConnectionString"));

to

CloudStorageAccount storageAccount = cloudStorageAccount.Parse("StorageConnectionString");

И вроде работает отлично.

person I.zv    schedule 15.11.2018

Я думаю, что вы должны изменить:

CloudStorageAccount storageAccount = CloudStorageAccount.Parse(
        CloudConfigurationManager.GetSetting("________"));

To:

CloudStorageAccount storageAccount = CloudStorageAccount.Parse(
        CloudConfigurationManager.GetSetting("StorageConnectionString"));

Надеюсь, поможет!

person Itay Podhajcer    schedule 12.11.2018