Вижте как работи appsettings.json
Околната среда
- Визуален студио
-
- Визуална оферта 2019
- ASP.NET ядро
-
- 3.0
- 3.1
На първо място
Когато създавате нов проект за ASP.NET Core, можете да създадете appsettings.json и настройки на приложенията. Конфигурационният файл на development.json е Включени в проекта.
Зададеното тук е параметърътappsettings.json. По време на разработването параметрите на един и същ ключ са настройките на приложенията. Използват се презаписаните настройки в Development.json.
В тази статия бих искал да видя как те са разменени и заредени.
Редактиране, за да видите как работи
Опитайте да добавите параметри към всеки конфигурационен файл, за да видите как работи. Добавете раздел TestObject към всеки един и добаветепараметъра TestValue.
Файлът appsettings.json се записва с shift-JIS код на знаците, така че ако искате да включите Запазете го отново в UTF-8.
за да се
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
},
"AllowedHosts": "*",
"TestObject": {
"TestValue": "Root です。",
"Comment": "日本語を使用する場合は appsettings.json を UTF-8 で保存しなおすこと。"
}
}
настройки на приложението. Д-р Д.К.
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
},
"TestObject": {
"TestValue": "Development です。",
"Comment": "日本語を使用する場合は appsettings.json を UTF-8 で保存しなおすこと。"
}
}
Получава параметрите на конфигурационния файл в действието index на 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>();
Показва стойността, получена в Index.cshtml от страната на изгледа.
<p>appsettings.json から取得したテキストを表示</p>
<p>@ViewData["Message"]</p>
Debug се изпълнява локално
Изграждане на проекта и да го отстраните и се опитайте да стартирате настройките на приложението. Можете да видите, че настройките на development.json се показват.
Разработката е причината, поради която променливите на средата се зареждат, когато стартирате приложение с ASP.NET Core. Параметърът е ASPNETCORE_ENVIRONMENT като параметър апнастройки. Стомашни Конфигурационен файл, който съответства на XXXX част сега се зарежда.
Разработване се задава при отстраняване на грешки, което е раздела за отстраняване на грешки за свойствата на проекта. Можете да видите, че е зададена в променливата на средата.
Ако се опитате да промените тази стойност на различна стойност и да я отстраните, Мисля, че се потвърждава, че страната на развитие не е зареден а коренът е зареден.
Между другото, този параметър не е разделен с Debug или Release, така че ако се отстранявате с версия, Използват се параметрите на разработката. Грешки и съобщение не може да бъде разделен, както в web.config, но можете да регистрирате няколко профила. Можете да предприемете действия, като например проверка на настройките за освобождаване, като превключите там.
Разполагане и изпълнение в IIS
И така, какво се случва, ако го разположите и стартирате в IIS? Опитайте да създадете сайт в IIS и да разположите програмата.
Това е настройката на маршрута, за която трябва да се използва. Така че, ако сте разположите програма в IIS, не е нужно да се притеснявате за разработване на настройки.
Можете да заредите конфигурационния файл по време на изпълнение, ако имате някаква стойност в ASPNETCORE_ENVIRONMENT променливата на iIS страна. Отворете редактора на конфигурация от настройките на сайта.
От раздела изберете aspNetCore в system.webServer.
Изберете ApplicationHost.config от местоположението.
Отворете средаVariables колекция.
Добавяне на колекция.
Въведете ASPNETCORE_ENVIRONMENT в името и след това въведете името на конфигурационния файл, който искате да заредите в стойност.
Ако рестартирате сайта и видите Web екрана, можете да видите, че зареждате файла за целева конфигурация.
Резюме
Ако първоначалната конфигурация е случаят, настройките на приложението. Ако настройките на Development.json са заредени и разположени в производствена среда, като например IIS, Мисля, че е добре да се мисли, че appsettings.json ще бъде зареден.
Имате разработка само когато създавате проект, но можете да създадете повече от едно приложение и можете да промените частта за разработка на всяко име. Ако имате повече от едно местоположение за изпълнение, например, можете да създадете няколко местоположения, след което да настроите и да работите с ASPNETCORE_ENVIRONMENT за вашата среда.