आप कोड को पार्स विन्यास वेब सर्वर पर चल बदल सकते हैं? यही वह है जो मैं करने की सिफारिश करता हूं। इससे आपको विंडोज वातावरण में अपने पर्यावरण को अधिक स्वाभाविक रूप से कॉन्फ़िगर करने की अनुमति मिल जाएगी।
जबकि वैरिएबल को कॉन्फ़िगर करने का पारंपरिक तरीका ASPNETCORE_ENVIRONMENT
पर्यावरण चर के माध्यम से है, तो आप बदल सकते हैं कि ASP.NET कोर इसकी कॉन्फ़िगरेशन को कैसे पार करता है जैसे कि आप चर कमांड तर्क के माध्यम से चर सेट कर सकते हैं।
बारीकियों में प्राप्त करने के लिए ...
डिफ़ॉल्ट रूप से, Program.cs
फ़ाइल dotnet new -t web
आदेश द्वारा उत्सर्जित तरह दिखता है निम्नलिखित:
public static void Main(string[] args) {
var host = new WebHostBuilder()
.UseKestrel()
.UseUrls("http://0.0.0.0:5000")
.UseContentRoot(Directory.GetCurrentDirectory())
.UseIISIntegration()
.UseStartup<Startup>()
.Build();
host.Run();
}
यह ASP.NET कोर the default configuration processing (environment variables with a ASPNETCORE_
prefix) उपयोग यह निर्धारित करने में आता है IHostingEnvironment.EnvironmentName
का मान, जिसका उपयोग आप कॉन्फ़िगर करने के लिए कर रहे हैं कि आपका एप्लिकेशन कैसा चल रहा है।
सौभाग्य से, आप एएसपी के तरीके को बदल सकते हैं।UseConfiguration()
extension method on WebHostBuilder
का उपयोग करके नेट कोर पार्स कॉन्फ़िगरेशन। यहाँ डिफ़ॉल्ट कार्यान्वयन के साथ कस्टम विन्यास का उपयोग करने का एक उदाहरण है:
public static void Main(string[] args) {
var configuration =
new ConfigurationBuilder()
.AddEnvironmentVariables("ASPNETCORE_")
.Build();
var host =
new WebHostBuilder()
.UseConfiguration(configuration)
.UseKestrel()
.UseUrls("http://0.0.0.0:5000")
.UseContentRoot(Directory.GetCurrentDirectory())
.UseIISIntegration()
.UseStartup<Startup>()
.Build();
host.Run();
}
यहाँ से, मैं इसे बदल जाएगा तो यह ASPNETCORE_
उपसर्ग के वातावरण चर के अलावा कमांड लाइन का उपयोग कर सकते हैं। यह आप आसानी से ऐसा तरह, आप चाहते हैं जो कुछ भी पर्यावरण नाम के साथ अपने आवेदन को चलाने के लिए अनुमति देगा:
public static void Main(string[] args) {
var configuration =
new ConfigurationBuilder()
.AddEnvironmentVariables("ASPNETCORE_")
.AddCommandLine(args)
.Build();
var host =
new WebHostBuilder()
.UseConfiguration(configuration)
.UseKestrel()
.UseUrls("http://0.0.0.0:5000")
.UseContentRoot(Directory.GetCurrentDirectory())
.UseIISIntegration()
.UseStartup<Startup>()
.Build();
host.Run();
}
फिर, जब आप dotnet run
के साथ अपने डॉटनैट कोर आवेदन शुरू, आप पर्यावरण कमांड लाइन पर, इस तरह सेट कर सकते हैं :
dotnet run environment=development
dotnet run environment=staging
अब ASPNETCORE_ENVIRONMENT
वातावरण चर अभी भी सम्मान किया जाना होगा, लेकिन आप कमांड लाइन के माध्यम से इसे ओवरराइड कर सकते हैं जब आप स्थानीय विकास कर रहे हैं। एक नोट के रूप में, आपको Microsoft.Extensions.Configuration.CommandLine
nuget पैकेज को project.json
फ़ाइल में शामिल करने की आवश्यकता होगी यदि आपने AddCommandLine()
एक्सटेंशन विधि प्राप्त करने के लिए पहले से ऐसा नहीं किया है।
आपकी परियोजना कैसे बनाई और तैनात की जाती है? शायद आप परियोजना निर्माण या तैनाती के दौरान अपने सिस्टम में सिस्टम पर्यावरण उपसर्ग पास करने पर विचार कर सकते हैं। इसलिए वे पर्यावरण मूल्य प्राप्त करने के लिए विभिन्न पर्यावरण परिवर्तनीय उपसर्ग का उपयोग कर सकते हैं। – Ricky