আইআইএস ওয়েব সার্ভারে আমার ওয়েব অ্যাপ্লিকেশনগুলি (উত্পাদন, স্ট্যাগিং, পরীক্ষা) হোস্ট করা আছে। সুতরাং ASPNETCORE_ENVIRONMENT অপারেটিভ সিস্টেম সিস্টেম এনভায়ারমেন্ট ভেরিয়েবলের উপর নির্ভর করা সম্ভব ছিল না, কারণ এটি একটি নির্দিষ্ট মান হিসাবে সেট করা (উদাহরণস্বরূপ STAGING) অন্য অ্যাপ্লিকেশনগুলিতে প্রভাব ফেলে।
কাজের আশেপাশে, আমি আমার ভিজ্যুজিস্টুডিও সমাধানের মধ্যে একটি কাস্টম ফাইল (এনভ্যাসেটেটিং.জসন) সংজ্ঞায়িত করেছি:
নিম্নলিখিত বিষয়বস্তু সহ:
{
// Possible string values reported below. When empty it use ENV variable value or Visual Studio setting.
// - Production
// - Staging
// - Test
// - Development
"ASPNETCORE_ENVIRONMENT": ""
}
তারপরে, আমার অ্যাপ্লিকেশন ধরণের (উত্পাদন, স্টেজিং বা টেস্ট) ভিত্তিতে আমি এই ফাইলটি যথাযথভাবে সেট করেছিলাম: মনে করুন যে আমি টেস্ট অ্যাপ্লিকেশন নিযুক্ত করছি, আমার কাছে থাকবে:
"ASPNETCORE_ENVIRONMENT": "Test"
তারপরে, প্রোগ্রাম.স ফাইলগুলিতে এই মানটি পুনরুদ্ধার করুন এবং তারপরে ওয়েব হোস্টবিল্ডারের পরিবেশ নির্ধারণ করুন:
public class Program
{
public static void Main(string[] args)
{
var currentDirectoryPath = Directory.GetCurrentDirectory();
var envSettingsPath = Path.Combine(currentDirectoryPath, "envsettings.json");
var envSettings = JObject.Parse(File.ReadAllText(envSettingsPath));
var enviromentValue = envSettings["ASPNETCORE_ENVIRONMENT"].ToString();
var webHostBuilder = new WebHostBuilder()
.UseKestrel()
.CaptureStartupErrors(true)
.UseSetting("detailedErrors", "true")
.UseContentRoot(currentDirectoryPath)
.UseIISIntegration()
.UseStartup<Startup>();
// If none is set it use Operative System hosting enviroment
if (!string.IsNullOrWhiteSpace(enviromentValue))
{
webHostBuilder.UseEnvironment(enviromentValue);
}
var host = webHostBuilder.Build();
host.Run();
}
}
মনে রাখবেন envsettings.json প্রকাশের বিভাগগুলিতে অন্তর্ভুক্ত (প্রকল্প.জসন):
"publishOptions":
{
"include":
[
"wwwroot",
"Views",
"Areas/**/Views",
"envsettings.json",
"appsettings.json",
"appsettings*.json",
"web.config"
]
},
এই সমাধানটি আমাকে এএসপি.নেট কোর অ্যাপ্লিকেশনটি একই আইআইএস-এ হোস্ট করাতে মুক্ত করে তোলে, উদ্ভাসিত ভেরিয়েবল মান থেকে স্বাধীন।
Properties\launchSettings.json
করতে পারে ।