در نوشته فایل launchSettings.json در ASP.NET Core MVC درباره فایل  گفتگو کردیم و در دنباله فایل های پیش فرض پروژه های ASP.NET Core MVC می خواهیم فایل appsettings.json را آموزش دهیم. در ASP.NET MVC، فایلی به نام web.config است که پیکربندی های مختلف برنامه همانند رشته اتصال پایگاه داده و هر گونه متغیرهای سراسری شناخته شده در پروژه و دیگر پیکربندی ها، در همین فایل که فرمت XML داشت، نگهداری می شدند.

در ASP.NET Core رویکرد دیگری پیش گرفته شده است و از این رو منابع گوناگونی برای پیکربندی ها فراهم شده است. در زیر این منابع فهرست شده اند و خواهید دید که برای نمونه در زمان راه اندازی و ساخت میزبان (Host) این منابع خوانده و مقدارها پیکربندی آنها بارگذاری می شوند.

  • فایل: یک دسته از منابع فایل ها هستند که می توانیم به appsettings.json و  appsettings.{Environment}.json اشاره کنیم. در اینجا Environment همانی است که گفتیم: Development و Staging و Production و پیش فرض تنها appsettings.json هست.
  • User Secret
  • متغیرهای محیطی
  • آرگومان های خط فرمان

متغیرهای محیطی و User Secret

متغیرهای محیطی (Environment Variable) منبعی هستند که داده های مهم و اصطلاحا Secret پروژه را بیرون از پروژه و فایل های پیکربندی و بر روی سیستم عاملی که پروژه بر روی آن اجرا می شود، نگهداری کرد. ایرادی که متغیرهای محیطی دارند آن است که به صورت واضح نگهداری می شودند، بنابراین با دسترسی به سیستم عامل، می توان به سادگی همه متغیرهای محیطی و مقدار هر یک را بدست آورد، به گونه ای که مقدار آنها آشکارا نمایش داده می شوند. برای پوشش این، گزینه دیگری به نام User Secret فراهم شده است.

فایل appsettings.json

شکل زیر محتوای فایل appsettings.json را برای پروژه ASP.NET Core MVC 3 نشان می دهد. Logging بخشی از فایل appsettings.json است که سطح لاگ کردن (Logging Level) برنامه را نشان می دهد. زیر بخش  LogLevel کمترین سطح لاگ را برای برنامه مشخص می کند.

در این پیوند می توانید سطح های لاگ شدن در برنامه های ASP.NET Core را بخوانید که برای نمونه می توان لاگ را برای سطح Warning یا Information و یا Debug ثبت کرد. در شکل زیر می بینید که دسته های گوناگونی هست که برای دسته Microsoft سطح Warning لاگ و برای همه دسته ها (Default) تا سطح Information لاگ ثبت می شود.

پس از یادگیری کلاس های کنترل گر، درباره چگونگی لاگ کردن خواهیم گفت ولی یک بخش از فایل appsettings.json مانده که AllowedHosts است. این بخش را در نوشته فایل Program.cs در ASP.NET Core MVC آموزش داده ایم و گفته ایم که این بخش از فایل appsettings.json، در ارتباط به پذیرفتن یا رَد کردن درخواست های آمده روی نشانی های IP یا نام دامنه است. به عبارت دیگر اگر سرور دارای چندین کارت شبکه و نشانی IP باشد، می خواهیم یا همگی درخواست ها را قبول کنند و یا اینکه تنها روی برخی پذیرفته شود.