Katso, miten appsettings.json toimii

Sivu päivitetty :
Sivun luontipäivämäärä :

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ä.

image

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.

image

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.

image

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.

image

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.

image

Tämä on käytettävä reittiasetus. Jos siis otat ohjelman käyttöön IIS:ssä, sinun ei tarvitse huolehtia asetusten kehittämisestä.

image

Voit ladata määritystiedoston suorituksen aikana, jos iIS-puolella on ASPNETCORE_ENVIRONMENT ympäristömuuttujan arvo. Avaa määrityseditori sivuston asetuksista.

image

Valitse -osan system.webServer-kohdasta aspNetCore.

image

Valitse sijainnista ApplicationHost.config.

image

Avaa environmentVariables-kokoelma.

image

Lisää kokoelma.

image

Kirjoita ASPNETCORE_ENVIRONMENT nimi ja kirjoita sitten sen määritystiedoston nimi, jonka haluat ladata arvoon.

image

Jos käynnistät sivuston uudelleen ja tarkastelet Web-näyttöä, näet, että lataat kohdemääritystiedostoa.

image

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.