Поделиться через


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

В предыдущей статье мы начали переносить проект 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 будут размещать значения конфигурации в формате JSON, например 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 каталог проекта с помощью соответствующего шаблона элемента:

Добавление JSON AppSettings

Перенос параметров конфигурации из 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, а также переменные среды.