Katso, miten appsettings.json toimii
Ympäristö
- Visuaalinen studio
-
- Visuaalinen studio 2019
- ASP.NET Core
-
- 3.0
- 3.1
Aluksi
Kun luot uuden ASP.NET Core -projektin, voit luoda appsettings.json- ja appsettings-asetuksia. Development.json-määritystiedosto on Sisältyy projektiin.
Tässä on määritetty parametri, jonka arvoksi on määritettyappsettings.json. Kehityshetkellä saman avaimen parametrit ovat appsettings. Development.json-tiedoston korvatut asetukset ovat käytössä.
Tässä artikkelissa haluaisin nähdä, miten ne on kytketty ja ladattu.
Muokkaa nähdäksesi, miten se toimii
Kokeile lisätä parametreja kuhunkin määritystiedostoon, jotta näet, miten se toimii. Lisää TestObject-osa jokaiseen osaan ja lisääTestValue-parametri.
Appsettings.json-tiedosto on kirjoitettu shift-JIS-merkkikoodilla, joten jos haluat sisällyttää japanin, Tallenna se uudelleen UTF-8:ssa.
appsettings.json appsettings.json appsettings.json appsettings
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
},
"AllowedHosts": "*",
"TestObject": {
"TestValue": "Root です。",
"Comment": "日本語を使用する場合は appsettings.json を UTF-8 で保存しなおすこと。"
}
}
Sovellusasetukset. Kävi koulua Development.json
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
},
"TestObject": {
"TestValue": "Development です。",
"Comment": "日本語を使用する場合は appsettings.json を UTF-8 で保存しなおすこと。"
}
}
Hakee määritystiedoston parametrit HomeController.cs-HomeController.cs. On menetelmä saada määrittämällä luokan, mutta rakastan sitä, koska se ei ole tätä aihetta.
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();
}
Jos luot, sidot ja lataat luokan, löydät seuraavankaltaisen koodin:
// クラス定義 public class TestObject { public string TestValue { get; set; } public string Comment { get; set; } } // 読み込み var testObject = _configuration.GetSection(nameof(TestObject)).Get<TestObject>();
Näyttää index.cshtml-tiedostossa saadun arvon näkymäpuolella.
<p>appsettings.json から取得したテキストを表示</p>
<p>@ViewData["Message"]</p>
Virheenkorjaus suoritetaan paikallisesti
Rakenna projekti ja tee virheenkorjaus ja yritä suorittaa sovellusasetukset. Näet, että development.json-asetukset tulevat näkyviin.
Kehitys on syy siihen, miksi ympäristömuuttujat ladataan, kun suoritat sovelluksen, jossa on ASP.NET Core. Parametriksi on määritetty ASPNETCORE_ENVIRONMENT parametrina on appsettings. Kävi koulua XXXX.json XXXX-osaa vastaava määritystiedosto ladataan nyt.
Kehitä määritetään virheenkorjausta varten, joka on projektin ominaisuuksien virheenkorjausvälilehti. Näet, että se on määritetty ympäristömuuttujassa.
Jos yrität muuttaa tämän arvon eri arvoksi ja tehdä virheenkorjauksen, Mielestäni on vahvistettu, että kehityspuoli ei ole ladattu ja juuripuoli on ladattu.
Muuten, tämä parametri ei ole erotettu Debug tai Release, joten jos debug kanssa Release, Käytetään kehitysparametreja. Virheenkorjausta ja julkaisua ei voi erottaa toisistaan, kuten web.config-tiedostossa, mutta voit rekisteröidä useita profiileja. Voit tehdä toimia, kuten tarkistaa julkaisuasetukset vaihtamalla siellä.
Käyttöönotto ja suorittaminen IIS:ssä
Mitä tapahtuu, jos otat sen käyttöön ja suoritat sen IIS:ssä? Yritä luoda sivusto IIS:ssä ja ottaa ohjelma käyttöön.
Tämä on käytettävä reittiasetus. Jos siis otat ohjelman käyttöön IIS:ssä, sinun ei tarvitse huolehtia asetusten kehittämisestä.
Voit ladata määritystiedoston suorituksen aikana, jos iIS-puolella on ASPNETCORE_ENVIRONMENT ympäristömuuttujan arvo. Avaa määrityseditori sivuston asetuksista.
Valitse -osan system.webServer-kohdasta aspNetCore.
Valitse sijainnista ApplicationHost.config.
Avaa environmentVariables-kokoelma.
Lisää kokoelma.
Kirjoita ASPNETCORE_ENVIRONMENT nimi ja kirjoita sitten sen määritystiedoston nimi, jonka haluat ladata arvoon.
Jos käynnistät sivuston uudelleen ja tarkastelet Web-näyttöä, näet, että lataat kohdemääritystiedostoa.
Yhteenveto
Jos alkuperäinen kokoonpano on kyse, appsettings. Jos Development.json-asetukset ladataan ja otetaan käyttöön tuotantoympäristössä, kuten IIS:ssä, Mielestäni se on ok ajatella, että appsettings.json ladataan.
Sinulla on kehitys, kun luot projektin, mutta voit luoda useita sovellusasetuksia ja voit muuttaa Kehitys-osan miksi tahansa nimeksi. Jos sinulla on esimerkiksi useita suoritussijoja, voit luoda useita sijainteja ja määrittää ja käyttää ASPNETCORE_ENVIRONMENT ympäristölle.