appsettings.json'ın nasıl çalıştığını görün

Sayfa güncel :
Sayfa oluşturma tarihi :

Ortam

Görsel Stüdyo
  • Visual Studio 2019
ASP.NET Çekirdek
  • 3.0
  • 3.1

İlk başta

Yeni bir ASP.NET Core projesi oluşturduğunuzda, appsettings.json ve appsettings oluşturabilirsiniz. development.json yapılandırma dosyası Projeye dahil edildi.

Burada ayarlanan şeyappsettings.json için ayarlanan parametredir. Geliştirme sırasında, aynı anahtarın parametreleri uygulama ayarlarıdır. Development.json'daki üzerine yazılmış ayarlar kullanılır.

image

Bu makalede, nasıl değiştirilir ve yüklenir görmek istiyorum.

Nasıl çalıştığını görmek için edin

Nasıl çalıştığını görmek için her yapılandırma dosyasına parametreler eklemeyi deneyin. Her birine bir TestNesnesi bölümü ekleyin veTestValue parametresini ekleyin.

appsettings.json dosyası shift-JIS karakter kodu ile yazılır, bu nedenle Japonca eklemek istiyorsanız, UTF-8'de tekrar kaydedin.

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 で保存しなおすこと。"
  }
}

yapılandırma dosyasının parametrelerini HomeController.cs Dizin eyleminde alır. Sınıf belirterek elde etmek için bir yöntem var, ama bu konu olmadığı için seviyorum.

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

Bir sınıf oluşturur, bağlar ve yüklerseniz, aşağıdakilere benzer bir kod bulursunuz:

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

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

Görünüm tarafında Index.cshtml'de elde edilen değeri görüntüler.

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

Hata ayıklama yerel olarak çalışır

Projeyi oluşturun ve hata ayıklayın ve uygulama ayarlarını çalıştırmayı deneyin. Development.json ayarlarının görüntülendiğini görebilirsiniz.

image

ASP.NET Core'a sahip bir uygulamayı çalıştırdığınızda ortam değişkenlerinin yüklenmesinin nedeni geliştirmedir. Parametre ASPNETCORE_ENVIRONMENT ASPNETCORE_ENVIRONMENT için ayarlanan parametre ayarı. XXXX.json XXXX bölümüyle eşleşen bir yapılandırma dosyası yüklendi.

Geliştirme, proje özellikleri için hata ayıklama sekmesi olan hata ayıklama yaparken ayarlanır. Ortam değişkeninde ayarladığını görebilirsiniz.

image

Bu değeri farklı bir değerle değiştirmeye ve hata ayıklamaya çalışırsanız, Ben geliştirme tarafı yüklü değildir ve kök tarafı yüklü olduğunu doğruladı düşünüyorum.

image

Bu arada, bu parametre Hata Ayıklama veya Sürüm ile ayrılmaz, bu nedenle Sürüm ile hata ayıklama, Geliştirme parametreleri kullanılır. Hata Ayıklama ve Sürüm, web.config'de olduğu gibi ayrılamaz, ancak birden çok profil kaydedebilirsiniz. Buradan geçiş yaparak sürüm ayarlarını denetlemek gibi bir eylemde olabilirsiniz.

IIS'de dağıtın ve çalıştırın

IIS'de konuşlandırıp çalıştırsanız ne olur? IIS'de bir site oluşturmayı ve programı dağıtmayı deneyin.

image

Bu, kullanılması planlanan rota ayarıdır. Bu nedenle, IIS'ye bir program dağıtıyorsanız, ayarları geliştirme konusunda endişelenmenize gerek yoktur.

image

IIS tarafında ki ASPNETCORE_ENVIRONMENT ortam değişkeninde herhangi bir değeriniz varsa yapılandırma dosyasını çalışma zamanında yükleyebilirsiniz. Site ayarlarından yapılandırma düzenleyicisini açın.

image

Bölümden system.webServer'da aspNetCore'u seçin.

image

Konumdan ApplicationHost.config'i seçin.

image

OrtamDeğişkenler koleksiyonunu açın.

image

Bir koleksiyon ekleyin.

image

ASPNETCORE_ENVIRONMENT adına yazın ve ardından değere yüklemek istediğiniz yapılandırma dosyasının adını yazın.

image

Siteyi yeniden başlatıp Web ekranını görüntülerseniz, hedef yapılandırma dosyasını yüklediğinizi görebilirsiniz.

image

Özet

İlk yapılandırma durumda, appsettings. Development.json ayarları IIS gibi bir üretim ortamında yüklenir ve dağıtılırsa, Ben appsettings.json yüklü olacağını düşünmek tamam olduğunu düşünüyorum.

Geliştirme yalnızca bir proje oluşturduğunuzda var, ancak birden fazla uygulama oluşturabilirsiniz ve Geliştirme bölümünü herhangi bir ada değiştirebilirsiniz. Örneğin, birden fazla yürütme konumunuz varsa, birden çok konum oluşturabilir ve ardından ortamınız için ASPNETCORE_ENVIRONMENT ayarlayabilir ve çalıştırabilirsiniz.