Функция Azure не может читать / получать доступ к local.settings.json при отладке с VS2017 для Mac - PullRequest
0 голосов
/ 03 мая 2018

Возвращено пустое / нулевое значение при попытке чтения из файла конфигурации local.settings.json при локальной отладке функции Azure с использованием VS2017 для Mac ... после сканирования Интернета я не смог определить, известно ли это вопрос или если есть обходной путь. Вот как я получаю доступ к настройкам конфигурации:

ConfigurationManager.ConnectionStrings["connName"].ConnectionString

Это прекрасно работает, если приложение Function отлажено на компьютере с Windows (та же база git-кода)

1 Ответ

0 голосов
/ 03 мая 2018

Функция Azure v2, работающая в среде исполнения 2.x (ядро .net), больше не поддерживает ConfigurationManager. См. ответ команды Azure на github .

Когда я отлаживаю функцию v2 в Windows, System.Configuration.ConfigurationErrorsException выбрасывается. И v1 все еще работает хорошо, как вы нашли.

Итак, как сказал @mariocatch, вместо этого попробуйте прочитать переменные окружения.

Два варианта для вас.

  1. Чтение переменных окружения напрямую

    string connectionString = Environment.GetEnvironmentVariable("ConnectionStrings:connName");
    
  2. Добавьте ExecutionContext context к параметрам метода вашей функции и прочитайте локальные настройки.

    [FunctionName("FunctionName")]
    public static void Run(...,ExecutionContext context)
    {
        var config = new ConfigurationBuilder()
            .SetBasePath(context.FunctionAppDirectory)
            .AddJsonFile("local.settings.json", optional: true, reloadOnChange: true)
            .AddEnvironmentVariables()
            .Build();
        string connectionString = config.GetConnectionString("connName");
        .....
    }
    
...