Контейнеры и наборы приложений Azure WebApp / переменные среды - PullRequest
0 голосов
/ 26 мая 2018

Я создал AzureWebApp с docker изображением.Приложение запускается, но оно не получает строку подключения.Я определил строку подключения как AppSetting, но я не вижу, чтобы этот параметр передавался как переменная среды.

Должен ли я ожидать, что мой AppSetting будет отображаться на выходе контейнера?Что-то вроде

docker run -e CONNSTR=FOO

Документы подразумевают, что это должно быть просто передано автоматически, но я чувствую, что что-то упустил.

Спасибо

Джо

Ответы [ 2 ]

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

Оказывается, это работало все время.У меня была законная проблема с аутентификацией против БД.Мне нужно было войти в службу, чтобы убедиться, что она получает правильную строку подключения.

Похоже, что настройки приложения неявно передаются в контейнер, не отображаясь в журналах как параметр -e.

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

Я сталкиваюсь с подобными проблемами при развертывании функции .NET Core 2 Azure, которая считывала параметры и строки подключения с помощью System.Configuration.ConfigurationManager.Основной причиной в моем случае было то, что ASP.NET Core представил новый API конфигурации.Более подробную информацию можно найти по адресу https://docs.microsoft.com/en-us/aspnet/core/fundamentals/configuration/?view=aspnetcore-2.0&tabs=basicconfiguration.

. Предполагается, что вы развертываете приложение ASP.NET Core, развернутое в Web Apps for Containers, возможно, вы столкнулись с подобной проблемой.Пожалуйста, попробуйте следующее:

a) Инициализируйте конфигурацию следующим образом:

using Microsoft.Extensions.Configuration;

...

IConfigurationRoot configuration = new ConfigurationBuilder()
    .SetBasePath(Directory.GetCurrentDirectory())
    .AddJsonFile("local.settings.json")
    .AddEnvironmentVariables()
    .Build();

b) Считайте строки подключения следующим образом:

configuration.GetConnectionString("StorageAccountConnectionString");

c) Считайте настройки следующим образом:

configuration["ContainerName"];

Вот пример файла конфигурации для моей функции Azure:

{
    "IsEncrypted": true,
    "Values": {
        "AzureWebJobsStorage": "UseDevelopmentStorage=true",
        "AzureWebJobsDashboard": "UseDevelopmentStorage=true",
        "ContainerName": "container"
    },
    "Host": {
        "LocalHttpPort": 7071
    },
    "ConnectionStrings": {
        "StorageAccountConnectionString": "UseDevelopmentStorage=true"
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...