Uzziniet, kā darbojas appsettings.json

Lapa atjaunota :
Lapas izveides datums :

Vides

Visual Studio
  • Visual Studio 2019
ASP.NET Core
  • 3,0
  • 3,1

Sākumā

Veidojot jaunu ASP.NET Core projektu, varat izveidot appsettings. JSON un appsettings. Izstrādes. JSON konfigurācijas fails tiek Iekļauti projektā.

Kas ir iestatīts šeit ir parametrs, kas iestatīts uzappsettings. JSON. Attīstības laikā tā paša taustiņa parametri ir appsettings. Tiek izmantoti pārrakstīti iestatījumi attīstībā. JSON.

image

Šajā rakstā es gribētu redzēt, kā tie ir pārgājuši un piekrauts.

Rediģēt, lai uzzinātu, kā tā darbojas

Mēģiniet pievienot parametrus katram konfigurācijas failam, lai redzētu, kā tas darbojas. Pievienojiet Testobject sadaļu un pievienojiet parametruTestValue .

Appsettings. JSON fails ir rakstīts ar SHIFT-JIS rakstzīmes kodu, tādēļ, ja vēlaties iekļaut japāņu, Saglabājiet to vēlreiz 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 で保存しなおすこと。"
  }
}

Iegūst konfigurācijas faila parametrus HomeController.cs darbības indekss. Ir iegūšanas metode, norādot klasi, bet es mīlu to, jo tas nav šis temats.

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

Ja izveidojat, saistāt un ielādējat klasi, jūs atradīsit kodu, kas ir līdzīgs šim:

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

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

Parāda vērtību, kas iegūta index. cshtml, skata pusē.

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

Atkļūdošanas palaist lokāli

Izveidot projektu un atkļūdot un mēģiniet palaist appsettings. Jūs varat redzēt, ka Development. JSON iestatījumi tiek parādīti.

image

Izstrāde ir iemesls, kāpēc tiek ielādēti vides mainīgos, palaižot programmu ar ASP.NET Core. Parametrs ir iestatīts ASPNETCORE_ENVIRONMENT kā parametrs ir appsettings. XXXX. JSON Konfigurācijas failu, kas atbilst xxxx daļa tagad ir ielādēts.

Izveidot atkļūdošanas, kas ir cilne atkļūdošanas projekta rekvizītus. Jūs varat redzēt, ka tas ir iestatīts vides mainīgais.

image

Ja mēģināt mainīt šo vērtību uz citu vērtību un atkļūdot, Es domāju, ka tas ir apstiprināts, ka attīstības pusē nav piekrauts un saknes pusē ir piekrauts.

image

Starp citu, šis parametrs nav atdalīts ar atkļūdošanas vai izlaišanas, tāpēc, ja jūs atkļūdot ar release, Tiek izmantoti izstrādes parametri. Atkļūdošanu un izlaišanu nevar atdalīt, kā Web. config, bet jūs varat reģistrēt vairākus profilus. Jūs varat veikt darbības, piemēram, pārbaudot atbrīvošanas iestatījumus, pārslēdzoties tur.

Izvietošana un palaišana programmā IIS

Tātad, kas notiek, ja jūs izvietot un palaist to IIS? Mēģiniet faktiski izveidot vietni IIS un izvietot programmu.

image

Tas ir maršruta iestatījums slated izmantot. Tātad, ja jūs esat izvietojot programmu IIS, jums nav jāuztraucas par izstrādāt iestatījumus.

image

Konfigurācijas failu var ielādēt izpildes laikā, ja jums ir kāda vērtība ASPNETCORE_ENVIRONMENT vides mainīgais IIS pusē. Atveriet konfigurācijas redaktoru no vietnes iestatījumi.

image

Sadaļā atlasiet Aspnetcore System. Webserver.

image

Atlasiet ApplicationHost. config no atrašanās vietas.

image

Atveriet Environmentmainīgie kolekciju.

image

Pievienot kolekciju.

image

Ierakstiet ASPNETCORE_ENVIRONMENT nosaukumu un pēc tam ievadiet konfigurācijas faila nosaukumu, kuru vēlaties ielādēt vērtībā.

image

Ja vietne tiek restartēta un apskatāt Web ekrānu, varat redzēt, ka esat ielādējat mērķa konfigurācijas failu.

image

Kopsavilkuma

Ja sākotnējā konfigurācija ir gadījumā appsettings. Ja Development. JSON iestatījumi tiek ielādēti un izvietoti ražošanas vidē, piemēram, IIS, Es domāju, ka tas ir OK domāt, ka appsettings. JSON tiks ielādēta.

Izstrāde ir tikai tad, ja izveidojat projektu, bet varat izveidot vairāk nekā vienu appsettings un attīstības daļu var mainīt uz jebkuru nosaukumu. Ja jums ir vairāk nekā viena izpildes vieta, piemēram, varat izveidot vairākas atrašanās vietas un pēc tam iestatīt un lietot savai videi ASPNETCORE_ENVIRONMENT.