Перенос конфигурации в ASP.NET Core

Авторы: Стив Смит (Steve Smith) и Скотт Эдди (Scott Addie)

В предыдущей статье мы начали переносить проект MVC ASP.NET на ASP.NET Core MVC. В этой статье мы переносим конфигурацию.

Просмотреть или скачать образец кода (описание загрузки)

Настройка конфигурации

ASP.NET Core больше не использует файлы Global.asax и web.config , которые использовались в предыдущих версиях ASP.NET. В более ранних версиях ASP.NET логика Application_StartUp запуска приложения была помещена в метод в Global.asax. Позже в ASP.NET MVC Startup.cs файл был включен в корневой каталог проекта; он был вызван при запуске приложения. ASP.NET Core полностью принял этот подход, поместив всю логику запуска в Startup.cs файл.

Файл web.config также был заменен в ASP.NET Core. Теперь конфигурация может быть настроена как часть процедуры запуска приложения, описанной в разделе Startup.cs. Конфигурация по-прежнему может использовать XML-файлы, но обычно ASP.NET проекты Core будут размещать значения конфигурации в JSформате ON, например appsettings.json. ASP.NET система конфигурации Core также может легко получить доступ к переменным среды, что может обеспечить более безопасное и надежное расположение для значений, относящихся к среде. Это особенно верно для секретов, таких как строка подключения и ключи API, которые не должны быть проверка в управление версиями. Дополнительные сведения о конфигурации см. в разделе "Конфигурация " в ASP.NET Core.

В этой статье мы начинаем с частично перенесенного проекта ASP.NET Core из предыдущей статьи. Чтобы настроить конфигурацию, добавьте следующий конструктор и свойство Startup.cs в файл, расположенный в корне проекта:

public Startup(IConfiguration configuration)
{
    Configuration = configuration;
}

public IConfiguration Configuration { get; }

Обратите внимание, что на этом этапе файл не будет компилироваться, Startup.cs так как нам по-прежнему нужно добавить следующую using инструкцию:

using Microsoft.Extensions.Configuration;

Добавьте файл в корневой appsettings.json каталог проекта с помощью соответствующего шаблона элемента:

Add AppSettings JSON

Перенос параметров конфигурации из web.config

Наш проект ASP.NET MVC включал необходимый строка подключения базы данных в web.config в <connectionStrings> элементе. В нашем проекте ASP.NET Core мы будем хранить эти сведения в appsettings.json файле. Откройте appsettings.jsonи обратите внимание, что он уже включает в себя следующее:

{
    "Data": {
        "DefaultConnection": {
            "ConnectionString": "Server=(localdb)\\MSSQLLocalDB;Database=_CHANGE_ME;Trusted_Connection=True;"
        }
    }
}

В выделенной строке, показанной выше, измените имя базы данных с _CHANGE_ME на имя базы данных.

Итоги

ASP.NET Core помещает всю логику запуска приложения в один файл, в котором можно определить и настроить необходимые службы и зависимости. Он заменяет файл web.config гибким компонентом конфигурации, который может использовать различные форматы файлов, такие как JSON, а также переменные среды.