Чтение connectionstrings в local.settings.json с помощью getenvironmentvariable в azure

В функции Azure v1 я пытаюсь прочитать строку подключения, присутствующую в local.settings.json, используя статический метод GetEnvironmentVariable

Вот мой файл local.settings.json

{
  "IsEncrypted": false,
  "Values": {
    "AzureWebJobsStorage": "UseDevelopmentStorage=true",
    "AzureWebJobsDashboard": "UseDevelopmentStorage=true"
  },
  "ConnectionStrings": {
    "OnPremisesConnection": "Server=test;Initial Catalog=testdb;Integrated Security=SSPI;"
  }
}

используя следующий код, я читаю строку подключения

string variableName = "OnPremisesConnection";
var res = Environment.GetEnvironmentVariable($"ConnectionStrings:{variableName}")

но в результате я получаю NULL. Что мне здесь не хватает?

Есть ли конкретная причина, по которой вы не используете опцию ConfigurationManager.ConnectionStrings[variableName]? Я не уверен, должны ли переменные среды работать локально.

Jan_V 10.08.2018 14:54

@Jan_V - поддерживается только в v1, рекомендуется использовать GetEnvironmentVariable для лучшей поддержки в будущем.

Pரதீப் 10.08.2018 14:55

@P ரதீப் Большой извините, что сделал ошибку, если вы все еще используете v1, GetEnvironmentVariable не может получить ConnectStrings, поскольку они не импортируются в среду, доступны только значения. Я обновлю свой ответ в вашем последнем вопросе.

Jerry Liu 10.08.2018 15:40

@JerryLiu Не могли бы вы дать свой ответ и на этот пост или дать ссылку на «последний вопрос», о котором вы говорите, в своем комментарии. Это поможет другим читателям. Спасибо.

Karishma Tiwari - MSFT 10.08.2018 23:12

@ KarishmaTiwari-MSFT Сожалею о пропаже, здесь это так.

Jerry Liu 11.08.2018 01:35

@JerryLiu Спасибо :)

Karishma Tiwari - MSFT 16.08.2018 20:59
4
6
2 867
1

Ответы 1

Хорошо. Вы можете попробовать следующее:

var config = new ConfigurationBuilder()
            .AddJsonFile("local.settings.json", optional: true, reloadOnChange: true)
            .AddEnvironmentVariables()
            .Build();
 
 string connectionStr = config["ConnectionStrings:OnPremisesConnection"]

Другие вопросы по теме