Функция Azure - свойство ConnectionString не было инициализировано - PullRequest
0 голосов
/ 25 октября 2018

Я разработал функцию Azure в Visual Studio, и она работает при публикации в Azure (с год назад).

Теперь я создал шаблон из этой функции Azure в Visual Studio и изменил некоторые детали, но в основном это то же самое.Когда я тестирую его локально, он работает нормально.

Но когда я публикую его в Azure и пытаюсь проверить его, я получаю эту ошибку:

The ConnectionString property has not been initialized

Я обычно пишу строку подключения в настройках приложения (и она хорошо работает длястарые функции Azure).

Вот как функция получает значение строки подключения:

var repo = new GranularRepository(ConfigurationManager.AppSettings["BoConnectionString"]);

Я также пробовал:

var repo = new AvgDeliveryTime_GranularRepository(Environment.GetEnvironmentVariable("BodbConnectionString"));

Ответы [ 2 ]

0 голосов
/ 29 октября 2018

Я исправил это, создав новый проект функции Azure.

Итак, я пришел к выводу, что создаю шаблон из другой функции Azure и использую его в качестве нового проекта в Visual Studio.создает проблемы.

0 голосов
/ 26 октября 2018

Согласно вашему описанию, я не смог различить время выполнения вашей функции.

Для v1:

Вы можете использовать как ConfigurationManager.AppSettings, так и System.Environment.GetEnvironmentVariable, чтобы получить строку подключения в Azure.

var a = ConfigurationManager.AppSettings["BoConnectionString"];
var b = System.Environment.GetEnvironmentVariable("BoConnectionString");

Для v2:

Вы можете использовать System.Environment.GetEnvironmentVariable и ConfigurationBuilder, чтобы получить его.Добавьте параметр ExecutionContext, который используется для поиска каталога приложения функции.

var a= System.Environment.GetEnvironmentVariable("BoConnectionString");
/////////////
public static void Run(...,ExecutionContext context)
{
    var config = new ConfigurationBuilder()
        .SetBasePath(context.FunctionAppDirectory)
        .AddJsonFile("local.settings.json", optional: true, reloadOnChange: true)
        .AddEnvironmentVariables()
        .Build();

    // Get Connection strings
    var connParameter= "MySqlAzureConnection";
    string connectionString = config.GetConnectionString($"{connParameter}");
}

В v1 и v2 вы устанавливаете строку подключения в настройках приложения.enter image description here

Более подробную информацию можно найти в этом выпуске .

...