Доступ к конфигурации приложения Azure из консольного приложения

#.net-core #app-config #azure-app-configuration

#.net-ядро #app-config #azure-app-configuration

Вопрос:

Я пытаюсь получить доступ к конфигурации приложения с помощью простого консольного приложения. Пока у меня есть:

 static void Main(string[] args)
{
    IConfiguration config = new ConfigurationBuilder()
              .AddUserSecrets("e7315677-d6aa-41ab-b7cc-8e801a7c8ae9")
              .AddAzureAppConfiguration("ConnectionStrings:AppConfig")
              .Build();
    Console.WriteLine("Hello World!");
}
  

Но выдается исключение, указывающее, что

Система.Исключение ArgumentException: ‘Строка подключения не имеет значения для ключевого слова ‘ConnectionStrings:AppConfig’.’

Я поместил эту строку подключения в secrets.мы с json знаем, что это допустимо. Что я делаю не так?

 {
  "ConnectionStrings:AppConfig": "<my connection string>"
}
  

Спасибо.

Кевин

Ответ №1:

Убедитесь, что строка подключения начинается с «Endpoint =». Он ищет пары ключ / значение и интерпретирует значение без ключа как ключ без значения.

Ответ №2:

AddAzureAppConfiguration Метод ожидает строку подключения в качестве аргумента. Вы получаете, System.ArgumentException поскольку "ConnectionStrings:AppConfig" это недопустимая строка подключения.

Чтобы использовать строку подключения, определенную в пользовательских секретах, для инициализации поставщика конфигурации приложения Azure, мы можем сначала создать экземпляр IConfiguration с пользовательским секретом и использовать его для доступа к свойству строки подключения. Вот измененная версия вашего кода, которая работает.

 static void Main(string[] args)
{
    IConfiguration intermediate = new ConfigurationBuilder()
        .AddUserSecrets("e7315677-d6aa-41ab-b7cc-8e801a7c8ae9")
        .Build();

    IConfiguration configuration = new ConfigurationBuilder()
        .AddAzureAppConfiguration(intermediate["ConnectionStrings:AppConfig"])
        .Build();
}

  

Ответ №3:

Не повторяйте ту же ошибку, что и я, и не копируйте конечную точку с портала службы приложений Azure. Найдите раздел «первичный ключ», там есть кнопка копирования строки подключения. Затем он должен выдать вам строку, которая включает в себя, которая запускает Endpoint = и включает идентификатор и секрет