Я больше не могу получить значения из local.setting.json с помощью функции Azure - PullRequest
0 голосов
/ 20 ноября 2018

Я смог получить и использовать значения из local.setting.json, используя Environment.GetEnvironmentVariable("test1");, теперь, похоже, нет способа получить этот файл и его значения.Я только знаю, что другой разработчик, которого нет в моей команде, что-то изменил и с тех пор больше не работает ... (я не могу понять, что он меняет, что может быть проблемой)

На самом деле для тестированияЯ попробовал это:

var appSettings = new ConfigurationBuilder()
                        .SetBasePath(context.FunctionAppDirectory)
                        .AddJsonFile("local.settings.json", optional: true, reloadOnChange: true)
                        .AddEnvironmentVariables()
                        .Build();

var b = appSettings["test1"];
var c = appSettings["test2"];

var d = Environment.GetEnvironmentVariable("test1", EnvironmentVariableTarget.Machine);
var e = Environment.GetEnvironmentVariable("test1", EnvironmentVariableTarget.User);
var f = Environment.GetEnvironmentVariable("test1", EnvironmentVariableTarget.Process);
var g = Environment.GetEnvironmentVariable("test1");

После этого все переменные равны нулю

local.settings.json

{
  "IsEncrypted": false,
  "Values": {
    "AzureWebJobsStorage": "",
    "test1": "abcd",
    "test2": "efgh"
   }
 }

Я использую Visual Studio 2017 иПроект Azure Functions, файл local.settings.json находится на том же уровне, что и функция.cs.

Что может быть?

Спасибо!

1 Ответ

0 голосов
/ 20 ноября 2018

Попробуйте следующее:

        var configuration = new ConfigurationBuilder()
             .SetBasePath(Directory.GetCurrentDirectory())
             .AddJsonFile("local.settings.json", true, true)
             .Build();

Возможно, ваш контекст.FunctionAppDirectory может быть неправильным.Также щелкните правой кнопкой мыши файл конфигурации -> Конфигурация -> Дополнительно => установите для параметра Копировать в выходной каталог значение Копировать, если новее.

...