Vaadake, kuidas appsettings.json töötab

Lehekülg uuendatud :
Lehe loomise kuupäev :

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.

image

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.

image

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.

image

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.

image

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.

image

See on kasutatav protsessisäte. Nii et kui juurutate programmi IIS-i, ei pea te muretsema sätete arendamise pärast.

image

Saate laadida konfiguratsioonifaili käitusajal, kui teil on mis tahes väärtus ASPNETCORE_ENVIRONMENT keskkonnamuutuja IIS-i poolel. Avage konfiguratsiooniredaktor saidi sätetest.

image

Valige jaotisest Aspnetcore System. webserver.

image

Valige asukohast ApplicationHost. config .

image

Avage Keskkonnakaitsmuutujate kogum.

image

Saate lisada kollektsiooni.

image

Tippige nimi ASPNETCORE_ENVIRONMENT ja tippige seejärel konfiguratsioonifaili nimi, mida soovite väärtusesse laadida.

image

Kui taaskäivitate saidi ja vaatate veebi, näete, et laadite Target konfiguratsioonifaili.

image

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.