Дізнайтеся, як працює appsettings.json
Середовищі
- Visual Studio
-
- Visual Studio 2019
- ASP.NET Core
-
- 3,0
- 3,1
На перший
Коли ви створюєте новий проект ASP.NET Core, ви можете створити appsettings. JSON і appsettings. Файл конфігурації розробки. JSON є Входить до складу проекту.
Встановлений тут параметр, встановлений наappsettings. JSON. На момент розвитку, параметри однієї клавіші є appsettings. Використовуються перезаписані параметри в розробленні. JSON.
У цій статті я хотів би бачити, як вони перейшли і завантажені.
Редагувати, щоб побачити, як це працює
Спробуйте додати параметри до кожного конфігураційного файлу, щоб побачити, як він працює. Додайте розділ Testobject до кожного з них і додайте параметрtestobject .
Файл appsettings. JSON написаний за допомогою Shift-JIS код символу, так що якщо ви хочете включити японську мову, Збережіть його знову в UTF-8.
appsettings. JSON
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
},
"AllowedHosts": "*",
"TestObject": {
"TestValue": "Root です。",
"Comment": "日本語を使用する場合は appsettings.json を UTF-8 で保存しなおすこと。"
}
}
Appsettings. Development. JSON
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
},
"TestObject": {
"TestValue": "Development です。",
"Comment": "日本語を使用する場合は appsettings.json を UTF-8 で保存しなおすこと。"
}
}
Отримує параметри конфігураційного файлу в індексі дії HomeController.cs. Існує метод отримання шляхом зазначення класу, але я люблю його, тому що це не предмет.
private readonly ILogger<HomeController> _logger;
private readonly IConfiguration _configuration;
// DI で IConfiguration を受け取る
public HomeController(ILogger<HomeController> logger, IConfiguration configuration)
{
_logger = logger;
_configuration = configuration;
}
public IActionResult Index()
{
// appsettings.json から値を取得します。
// 階層化されている場合は GetSection を使用します。
ViewData["Message"] = _configuration.GetSection("TestObject").GetValue<string>("TestValue");
return View();
}
Якщо ви створюєте, зв'яжете і завантажуєте клас, ви знайдете код приблизно такого вигляду:
// クラス定義 public class TestObject { public string TestValue { get; set; } public string Comment { get; set; } } // 読み込み var testObject = _configuration.GetSection(nameof(TestObject)).Get<TestObject>();
Відображає значення, отримане в індексі. cshtml з боку перегляду.
<p>appsettings.json から取得したテキストを表示</p>
<p>@ViewData["Message"]</p>
Налагодження запустити локально
Створіть проект і налагодження його та спробуйте запустити appsettings. Ви можете побачити, що параметри розробки. JSON відображаються.
Розвиток є причиною, чому змінні середовища завантажуються під час запуску програми з ASP.NET Core. Параметр, встановлений для ASPNETCORE_ENVIRONMENT як параметр, є appsettings. XXXX. JSON Тепер завантажується файл конфігурації, який відповідає частині XXXX .
Розробка встановлюється при налагоджування, що є вкладкою налагодження для властивостей проекту. Ви можете бачити, що він встановлений в змінну оточення.
Якщо ви спробуєте змінити це значення на інше значення та налагодити його, Я думаю, що це підтверджено, що розвиток боку не завантажується і завантажується корінь боку.
До речі, цей параметр не відділяється від налагодження або випуску, так що якщо ви відлагодження з випуском, Використовуються параметри розробки. Налагодження та випуск не можна розділити, як у Web. config, але ви можете зареєструвати кілька профілів. Ви можете вжити заходів, таких як перевірка параметрів випуску, перейшовши туди.
Розгортання та запуск у службах IIS
Так що станеться, якщо розгорнути і запустити його в IIS? Спробуйте фактично створення сайту в IIS і розгортання програми.
Це налаштування маршруту планується використовувати. Тому, якщо ви розгортаєте програму для служб IIS, вам не потрібно турбуватися про створення параметрів.
Можна завантажити файл конфігурації під час виконання, якщо у вас є будь-які значення в ASPNETCORE_ENVIRONMENT змінну середовища на IIS стороні. Відкрийте редактор конфігурації з настройки сайту.
У розділі виберіть Aspnetcore в System. веб-сервер.
Виберіть Програхохост. config з розташування.
Відкрийте колекцію environmentVariables .
Додати колекцію.
Введіть ASPNETCORE_ENVIRONMENT ім'я та введіть ім'я файлу конфігурації, який потрібно завантажити в значення.
Якщо ви перезапустите сайт і переглядаєте веб-екран, ви можете побачити, що завантажується файл конфігурації.
Резюме
Якщо початкова конфігурація випадку, appsettings. Якщо параметри розробки. JSON завантажуються та розгортаються у виробничому середовищі, наприклад IIS, Я думаю, що це нормально думати, що appsettings. JSON буде завантажено.
У вас є тільки розвиток під час створення проекту, але можна створити більше одного appsettings, і ви можете змінити частину розвитку будь-яке ім'я. Якщо ви маєте більше одного розташування для виконання, наприклад, можна створити кілька розташувань, а потім настроїти та керувати ASPNETCORE_ENVIRONMENT для вашого середовища.