Pozrite sa, ako funguje appsettings.json
Životné prostredie
- Visual Studio
-
- Visual Studio 2019
- ASP.NET Core
-
- 3,0
- 3,1
Ubytovacom zariadení First
Keď vytvoríte nový projekt ASP.NET Core, môžete vytvoriť appSettings. JSON a appSettings. Konfiguračný súbor Development. JSON je Zahrnuté do projektu.
Čo je tu nastavená, je parameter nastavený naappSettings. JSON. V čase vývoja, parametre rovnakého kľúča sú appSettings. Prepísané nastavenia vo vývoji. JSON sa používajú.
V tomto článku by som chcel vidieť, ako sú zapnuté a naložené.
Upraviť, aby ste videli, ako to funguje
Pokúste sa pridať parametre do každého konfiguračného súboru, aby ste videli, ako to funguje. Pridať objekt Testobject každý z nich a pridajte parameterTestValue .
Súbor appSettings. JSON je napísaný s kódom znaku Shift-JIS, takže ak chcete zahrnúť japončinu, Uložte ho znova v UTF-8.
appSettings. JSON
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
},
"AllowedHosts": "*",
"TestObject": {
"TestValue": "Root です。",
"Comment": "日本語を使用する場合は appsettings.json を UTF-8 で保存しなおすこと。"
}
}
AppSettings. Development. JSON
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
},
"TestObject": {
"TestValue": "Development です。",
"Comment": "日本語を使用する場合は appsettings.json を UTF-8 で保存しなおすこと。"
}
}
Získa parametre konfiguračného súboru v akcii indexu HomeController.cs. Existuje spôsob získania zadaním triedy, ale milujem to, pretože to nie je táto téma.
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();
}
Ak vytvoríte, viazať a načítať triedu, nájdete kód podobný nasledujúcemu:
// クラス定義 public class TestObject { public string TestValue { get; set; } public string Comment { get; set; } } // 読み込み var testObject = _configuration.GetSection(nameof(TestObject)).Get<TestObject>();
Zobrazí hodnotu získanú v indexe. cshtml na strane zobrazenia.
<p>appsettings.json から取得したテキストを表示</p>
<p>@ViewData["Message"]</p>
Ladenie spustiť lokálne
Vybudovať projekt a ladiť a pokúsiť sa spustiť appSettings. Môžete vidieť, že sú zobrazené nastavenia vývoja. JSON.
Vývoj je dôvodom, prečo sú premenné prostredia načítané pri spustení aplikácie s jadrom ASP.NET. Parameter nastavený na ASPNETCORE_ENVIRONMENT ako parameter je appSettings. XXXX. JSON Konfiguračný súbor, ktorý zodpovedá xxxx časť je teraz načítaný.
Vyvinúť je nastavený pri ladenie, čo je Debug kartu pre vlastnosti projektu. Môžete vidieť, že je nastavený v systémovej premennej.
Ak sa pokúsite zmeniť túto hodnotu na inú hodnotu a ladenie, Myslím, že je potvrdené, že vývojová strana nie je naložený a koreňovej strane je naložený.
Mimochodom, tento parameter nie je oddelený ladenie alebo uvoľnenie, takže ak ladenie s vydaním, Používajú sa parametre vývoja. Ladenie a uvoľnenie nemožno oddeliť, rovnako ako v web. config, ale môžete zaregistrovať viac profilov. Môžete vykonať akciu, ako je napríklad kontrola nastavenia uvoľnenia.
Nasadenie a spustenie v službe IIS
Takže čo sa stane, ak nasadiť a spustiť v službe IIS? Skúste skutočne vytvoriť lokalitu v službe IIS a nasadenie programu.
Toto je nastavenie trasy, ktoré sa má použiť. Takže ak Nasadzujete program do služby IIS, nemusíte sa obávať vývoja nastavení.
Môžete načítať konfiguračný súbor v čase spustenia, ak máte ľubovoľnú hodnotu v ASPNETCORE_ENVIRONMENT premenné prostredia na strane IIS. Otvorte konfiguračný Editor z nastavenia lokality.
Z časti vyberte Aspnetcore v System. webserver.
Vyberte ApplicationHost. config z umiestnenia.
Otvorte kolekciu Environmentpremenných .
Pridať kolekciu.
Zadajte ASPNETCORE_ENVIRONMENT názov a potom zadajte názov konfiguračného súboru, ktorý chcete načítať do hodnoty.
Ak reštartujete lokalitu a zobrazíte webovú obrazovku, môžete vidieť, že načítate cieľový konfiguračný súbor.
Zhrnutie
Ak je počiatočná konfigurácia je prípad, appSettings. Ak vývojové. JSON nastavenia sú načítané a nasadené v produkčnom prostredí, ako je IIS, Myslím, že je to v poriadku, aby si myslel, že appSettings. JSON bude načítaný.
Máte len vývoj pri vytváraní projektu, ale môžete vytvoriť viac ako jedno appSettings a môžete zmeniť vývojovú časť na ľubovoľný názov. Ak máte viac ako jedno miesto vykonania, môžete napríklad vytvoriť viacero umiestnení a potom nastaviť a prevádzkovať ASPNETCORE_ENVIRONMENT pre svoje prostredie.