انظر كيفية عمل appsettings.json

تحديث الصفحة :
تاريخ إنشاء الصفحة :

البيئه

استوديو البصرية
  • استوديو البصرية 2019
ASP.NET الأساسية
  • 3.0
  • 3.1

في البداية

عند إنشاء مشروع ASP.NET أساسي جديد، يمكنك إنشاء appsettings.json وappsettings. ملف تكوين development.json هو متضمن في المشروع.

ما تم تعيينه هنا هو المعلمة التي تم تعيينها إلىappsettings.json. في وقت التطوير، معلمات نفس المفتاح هي الإعدادات. يتم استخدام الإعدادات المكتوبة في Development.json.

image

في هذه المقالة ، أود أن أرى كيف يتم تبديلها وتحميلها.

تحرير لمعرفة كيف يعمل

حاول إضافة معلمات إلى كل ملف تكوين لمعرفة كيفية عمله. إضافة مقطع TestObject إلى كل واحد وإضافة المعلمةTestValue.

تتم كتابة ملف appsettings.json مع رمز حرف SHIFT-JIS، لذلك إذا كنت تريد تضمين اليابانية، حفظه مرة أخرى في UTF-8.

appsettings.json

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

Appsettings. التنمية.json

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

يحصل على معلمات ملف التكوين في إجراء الفهرس HomeController.cs. هناك طريقة للحصول على من خلال تحديد الطبقة ، ولكن أنا أحب ذلك لأنه ليس هذا الموضوع.

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

إذا قمت بإنشاء فئة وربطها وتحميلها، فستجد تعليمات برمجية مشابهة للتعليمات البرمجية التالية:

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

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

يعرض القيمة التي تم الحصول عليها في Index.cshtml على جانب العرض.

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

تشغيل التصحيح محلياً

إنشاء المشروع وتصحيحه ومحاولة تشغيل الإعدادات. يمكنك أن ترى أن يتم عرض إعدادات development.json.

image

التطوير هو السبب في تحميل متغيرات البيئة عند تشغيل تطبيق باستخدام ASP.NET Core. تعيين المعلمة إلى ASPNETCORE_ENVIRONMENT كما المعلمة هو appsettings. XXXX.json يتم الآن تحميل ملف تكوين يطابق جزء XXXX.

يتم تعيين التطوير عند التصحيح، وهو علامة التبويب التصحيح لخصائص المشروع. يمكنك أن ترى أنه تم تعيينه في متغير البيئة.

image

إذا حاولت تغيير هذه القيمة إلى قيمة مختلفة وتصحيحها، وأعتقد أنه تم التأكيد على أن الجانب التنمية لم يتم تحميل ويتم تحميل الجانب الجذر.

image

بالمناسبة، لا يتم فصل هذه المعلمة بواسطة التصحيح أو الإصدار، لذلك إذا قمت بالتصحيح مع الإصدار، يتم استخدام معلمات التطوير. لا يمكن فصل التصحيح والإصدار، كما هو الحال في web.config، ولكن يمكنك تسجيل ملفات تعريف متعددة. يمكنك اتخاذ إجراء، مثل التحقق من إعدادات الإصدار عن طريق التبديل هناك.

النشر والتشغيل في IIS

فماذا يحدث إذا قمت بنشر وتشغيله في IIS؟ حاول إنشاء موقع في IIS ونشر البرنامج بالفعل.

image

هذا هو إعداد المسار المقرر استخدامه. لذلك إذا كنت تنشر برنامجًا إلى IIS ، فلا داعي للقلق بشأن تطوير الإعدادات.

image

يمكنك تحميل ملف التكوين في وقت التشغيل إذا كان لديك أي قيمة في متغير بيئة ASPNETCORE_ENVIRONMENT على جانب IIS. افتح محرر التكوين من إعدادات الموقع.

image

من القسم، حدد aspNetCore في system.webServer.

image

حدد ApplicationHost.config من الموقع.

image

فتح مجموعة متغيرات البيئة.

image

إضافة مجموعة.

image

اكتب ASPNETCORE_ENVIRONMENT في الاسم، ثم اكتب اسم ملف التكوين الذي تريد تحميله إلى قيمة.

image

إذا قمت بإعادة تشغيل الموقع وعرض شاشة ويب، يمكنك أن ترى أنك تقوم بتحميل ملف التكوين الهدف.

image

موجز

إذا كان التكوين الأولي هو الحالة، يقوم appsettings. إذا تم تحميل إعدادات Development.json ونشرها في بيئة إنتاج مثل IIS، أعتقد أنه لا بأس من التفكير في أن appsettings.json سيتم تحميلها.

لديك التطوير فقط عند إنشاء مشروع، ولكن يمكنك إنشاء أكثر من إعدادات تطبيق واحدة، ويمكنك تغيير جزء التطوير إلى أي اسم. إذا كان لديك أكثر من موقع تنفيذ واحد، على سبيل المثال، يمكنك إنشاء مواقع متعددة، ثم إعداد وتشغيل ASPNETCORE_ENVIRONMENT للبيئة الخاصة بك.