Vaadake, kuidas appsettings.json töötab
Keskkond
- Visual Studio
-
- Visual Studio 2019
- ASP.NET tuum
-
- 3,0
- 3,1
Alguses
Uue ASP.NET Core projekti loomisel saate luua appSettings. JSON ja appSettings. Arendus. JSON konfiguratsioonifail on Projekti kaasatud.
Siin on määratud parameetriappSettings. JSON parameetriks. Arenduse ajal on sama võtme parameetrid appSettings. Kasutatakse ülekirjutatud sätteid Development. JSON.
Selles artiklis tahaksin näha, kuidas nad on sisse lülitatud ja laetud.
Redigeeri, et näha, kuidas see töötab
Proovige iga konfiguratsioonifaili parameetreid lisada, et näha, kuidas see töötab. Lisage Testobject jaotis igale ühele ja lisage parameetriTestValue .
AppSettings. JSON fail on kirjutatud Shift-JIS märgikoodiga, nii et kui soovite kaasata Jaapani, Salvestage see uuesti UTF-8-s.
appSettings. JSON
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
},
"AllowedHosts": "*",
"TestObject": {
"TestValue": "Root です。",
"Comment": "日本語を使用する場合は appsettings.json を UTF-8 で保存しなおすこと。"
}
}
Lisa seaded. Arengu. JSON
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
},
"TestObject": {
"TestValue": "Development です。",
"Comment": "日本語を使用する場合は appsettings.json を UTF-8 で保存しなおすこと。"
}
}
Saab parameetrid konfiguratsioonifaili HomeController.cs index-toiming. On meetod saada, määrates klassi, kuid ma armastan seda, sest see ei ole see teema.
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();
}
Kui loote, seote ja laadite klassi, leiate koodi, mis sarnaneb järgmisega:
// クラス定義 public class TestObject { public string TestValue { get; set; } public string Comment { get; set; } } // 読み込み var testObject = _configuration.GetSection(nameof(TestObject)).Get<TestObject>();
Kuvab registrivaates index. cshtml saadud väärtuse.
<p>appsettings.json から取得したテキストを表示</p>
<p>@ViewData["Message"]</p>
Siluda käivitada kohalikult
Ehitada projekti ja siluda ja proovige käivitada appSettings. Te näete, et arendus. JSON seaded kuvatakse.
Arendus on põhjus, miks keskkonna muutujad laaditakse, kui käivitate rakenduse ASP.NET Core. Parameetri väärtuseks ASPNETCORE_ENVIRONMENT parameeter on appSettings. XXXX. JSON Konfiguratsioonifail, mis vastab xxxx osa on nüüd laaditud.
Arendamine on seatud silumine, mis on siluri vahekaart projekti atribuute. Saate näha, et see on seatud keskkonnamuutuja.
Kui proovite muuta selle väärtuse teise väärtuse ja siluda, Ma arvan, et on kinnitatud, et areng pool ei ole laetud ja juur pool laaditakse.
Muide, see parameeter on eraldatud siluri või Väljalaske, nii et kui siluda Release, Kasutatakse arengu parameetreid. Siluda ja vabastamist ei saa eraldada, nagu Web. config, kuid saate registreerida mitu profiili. Võite võtta meetmeid, näiteks kontrollida Väljalaske seadeid, lülitades sinna.
Juurutamine ja käivitamine IIS-is
Mis juhtub, kui juurutate ja käivitate IIS-i? Proovige tegelikult luua saidi IIS-i ja juurutamine programmi.
See on kasutatav protsessisäte. Nii et kui juurutate programmi IIS-i, ei pea te muretsema sätete arendamise pärast.
Saate laadida konfiguratsioonifaili käitusajal, kui teil on mis tahes väärtus ASPNETCORE_ENVIRONMENT keskkonnamuutuja IIS-i poolel. Avage konfiguratsiooniredaktor saidi sätetest.
Valige jaotisest Aspnetcore System. webserver.
Valige asukohast ApplicationHost. config .
Avage Keskkonnakaitsmuutujate kogum.
Saate lisada kollektsiooni.
Tippige nimi ASPNETCORE_ENVIRONMENT ja tippige seejärel konfiguratsioonifaili nimi, mida soovite väärtusesse laadida.
Kui taaskäivitate saidi ja vaatate veebi, näete, et laadite Target konfiguratsioonifaili.
Kokkuvõte
Kui algne konfiguratsioon on nii, siis appSettings. Kui arendus. JSON sätted laaditakse ja juurutatakse tootmiskeskkonnas nagu IIS, Ma arvan, et see on OK arvata, et appSettings. JSON laaditakse.
Teil on ainult arendus, kui loote projekti, kuid saate luua rohkem kui ühe appSettings ja saate muuta arendus osa mis tahes nime. Kui teil on mitu täitmiskohta, näiteks saate luua mitu asukohta ning seejärel seadistada ja käitada oma keskkonna jaoks ASPNETCORE_ENVIRONMENT.