Sužinokite, kaip veikia appsettings.json

Puslapis atnaujintas :
Puslapio sukūrimo data :

Aplinkos

Visual Studija
  • "Visual Studio 2019"
ASP.NET branduolys
  • 3.0
  • 3.1

Iš pradžių

Kai kuriate naują ASP.NET "Core" projektą, galite sukurti appsettings.json ir appsettings. Development.json konfigūracijos failas yra Įtraukta į projektą.

Čia nustatytas parametras, nustatytas kaipappsettings.json. Kūrimo metu to paties rakto parametrai yra appsettings. Naudojami perrašyti Parametrai Development.json.

image

Šiame straipsnyje norėčiau pamatyti, kaip jie yra perjungiami ir pakraunami.

Redaguoti, kad pamatytumėte, kaip tai veikia

Pabandykite įtraukti parametrus į kiekvieną konfigūracijos failą, kad pamatytumėte, kaip jis veikia. Įtraukite sekciją TestObject į kiekvieną iš jų ir pridėkite parametrąTestValue.

appsettings.json failas parašytas su shift-JIS simbolio kodu, todėl, jei norite įtraukti japonų kalbą, Išsaugokite jį dar kartą UTF-8.

Uab "Sakalauskas"

{
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft": "Warning",
      "Microsoft.Hosting.Lifetime": "Information"
    }
  },
  "AllowedHosts": "*",
  "TestObject": {
    "TestValue": "Root です。",
    "Comment": "日本語を使用する場合は appsettings.json を UTF-8 で保存しなおすこと。"
  }
}

Programos nustatymai. Plėtros.json

{
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft": "Warning",
      "Microsoft.Hosting.Lifetime": "Information"
    }
  },
  "TestObject": {
    "TestValue": "Development です。",
    "Comment": "日本語を使用する場合は appsettings.json を UTF-8 で保存しなおすこと。"
  }
}

Gauna konfigūracijos failo parametrus HomeController.cs veiksme Rodyklė. Yra būdas gauti nurodant klasę, bet man tai patinka, nes tai nėra ši tema.

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();
}

Jei sukursite, susiesite ir įkelsite klasę, rasite kodą, panašų į šį:

// クラス定義
public class TestObject
{
  public string TestValue { get; set; }
  public string Comment { get; set; }
}

// 読み込み
var testObject = _configuration.GetSection(nameof(TestObject)).Get<TestObject>();

Rodo reikšmę, gautą rodyklės.cshtml rodinio pusėje.

<p>appsettings.json から取得したテキストを表示</p>
<p>@ViewData["Message"]</p>

Derinimo paleisti vietoje

Sukurkite projektą ir jį derinkite ir pabandykite paleisti appsettings. Galite matyti, kad bus rodomi development.json parametrai.

image

Kūrimas yra priežastis, kodėl aplinkos kintamieji įkeliami paleidus programą su ASP.NET Core. Parametras, nustatytas ASPNETCORE_ENVIRONMENT parametras yra appsettings. Xxxx.json (Anglų) Dabar įkeliamas konfigūracijos failas, atitinkantis XXXX dalį.

Kūrimo rinkinys, kai derinimas, kuris yra projekto ypatybių derinimo skirtukas. Galite matyti, kad jis nustatytas aplinkos kintamajame.

image

Jei bandote pakeisti šią reikšmę į kitą reikšmę ir derinti ją, Manau, kad patvirtinama, jog vystymosi pusė nėra pakrauta ir šakninė pusė yra pakrauta.

image

Beje, šis parametras nėra atskirtas derinimo arba išleidimo, todėl, jei derinti su išleidimo, Naudojami kūrimo parametrai. Derinimo ir išleidimo negalima atskirti, kaip ir web.config, bet galite užregistruoti kelis profilius. Galite atlikti veiksmus, pvz., patikrinti leidimo parametrus perjungdami ten.

Diegti ir paleisti IIS

Taigi, kas atsitiks, jei diegsite ir paleisti jį IIS? Pabandykite iš tikrųjų sukurti svetainę IIS ir įdiegti programą.

image

Tai yra maršruto nustatymas, kurį reikia naudoti. Taigi, jei diegiate programą Į IIS, jums nereikia jaudintis dėl parametrų kūrimo.

image

Galite įkelti konfigūracijos failą vykdymo metu, jei turite kokios nors ASPNETCORE_ENVIRONMENT aplinkos kintamasis IIS pusėje reikšmė. Atidarykite konfigūracijos rengyklę iš svetainės parametrų.

image

Skyriuje, pasirinkite aspNetCore system.webServer.

image

Pasirinkite ApplicationHost.config iš vietos.

image

Atidarykite aplinkąKintamųjų rinkinys.

image

Įtraukite rinkinį.

image

Įveskite ASPNETCORE_ENVIRONMENT vardą, tada įveskite konfigūracijos failo, kurį norite įkelti į reikšmę, pavadinimą.

image

Jei iš naujo paleisite svetainę ir peržiūrėsite žiniatinklio ekraną, pamatysite, kad įkeliate paskirties konfigūracijos failą.

image

Santrauka

Jei pradinė konfigūracija yra atvejis, appsettings. Jei Development.json parametrai yra įkeltas ir diegiamas gamybos aplinkoje, pvz., IIS, Manau, kad tai ok galvoti, kad appsettings.json bus pakrautas.

Kūrimo programą turite tik kurdami projektą, bet galite sukurti daugiau nei vieną programos parametrus ir galite pakeisti kūrimo dalį bet kuriuo pavadinimu. Pavyzdžiui, jei turite daugiau nei vieną vykdymo vietą, galite sukurti kelias vietas, tada nustatyti ir valdyti ASPNETCORE_ENVIRONMENT savo aplinkai.