मेरे पास एक ASP.NET कोर एप्लिकेशन है जिसमें कॉन्फ़िगरेशन फ़ाइल में कनेक्शन स्ट्रिंग कुंजी है।
यदि इसका मान सही नहीं है (उदाहरण के लिए डेटाबेस का नाम, आईपी पता, आदि), तो मैं इस dbcontext सेवा को नए कनेक्शन स्ट्रिंग के साथ फिर से पंजीकृत करने में सक्षम होना चाहता हूं, जब उपयोगकर्ता ने इसे मैन्युअल रूप से कॉन्फ़िगरेशन फ़ाइल में बदल दिया है।
इसे कैसे हासिल करें? क्या यह एक बुरा अभ्यास माना जाता है?
धन्यवाद।
2 जवाब
मैं देखता हूं कि आप एएसपीनेट कोर का उपयोग कर रहे हैं।
आदर्श रूप से जब एप्लिकेशन चल रहा हो तो आपको अपनी कनेक्शन स्ट्रिंग नहीं बदलनी चाहिए क्योंकि इससे आपके वेब एप्लिकेशन का रीसेट हो सकता है (स्टार्टअप कॉन्फ़िगरेशन और वेब सर्वर के आधार पर)।
अपने प्रश्न का उत्तर देने के लिए, जब एप्लिकेशन चल रहा हो तो आप कॉन्फ़िगरेशन बदल सकते हैं। ReloadOnChange पैरामीटर आपके लिए उपयोगी होगा।
जब भी appsettings.json कॉन्फ़िगरेशन फ़ाइल में कोई परिवर्तन होता है, तो नीचे दिया गया कोड reloadOnChange को सही पर सेट करता है।
public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.ConfigureAppConfiguration((hostingContext, config) =>
{
config.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true);
})
.UseStartup<Startup>();
संदर्भ: https://docs.microsoft .com/en-us/aspnet/core/fundamentals/configuration/?view=aspnetcore-2.2
.NET कोर के साथ, आपको अपनी सेटिंग फ़ाइल को स्वचालित रूप से पुनः लोड करने के लिए अपने स्टार्टअप OWIN ऐप को सही ढंग से कॉन्फ़िगर करने की आवश्यकता है।
अपने स्टार्टअप वर्ग में जहां आप appsettings.json फ़ाइल को पंजीकृत करते हैं, आपको उसे यह बताना होगा कि उसे परिवर्तन पर पुनः लोड करना चाहिए। आप इसे एक पैरामीटर के रूप में पास करते हैं। उदाहरण के लिए:
public Startup(IHostingEnvironment env)
{
var builder = new ConfigurationBuilder()
.AddJsonFile("appsettings.json", reloadOnChange: true)
Configuration = builder.Build();
}
उपरोक्त कोड की तर्ज पर कुछ कोशिश करें
ऊपर विस्तार से बताने के लिए।
इस तरह की सेटिंग फ़ाइलों को बदलना आदर्श रूप से ऑक्टोपस जैसे परिनियोजन उपकरण के माध्यम से प्रबंधित किया जाना चाहिए। इस तरह आप टूल पर वेरिएबल को परिभाषित कर सकते हैं जिसका उपयोग परिनियोजन पर ऐप सेटिंग्स को बदलने के लिए किया जाएगा। :)
संबंधित सवाल
नए सवाल
c#
C # (उच्चारण "तेज देखें") Microsoft द्वारा विकसित एक उच्च स्तरीय, सांख्यिकीय रूप से टाइप किया हुआ, बहु-प्रतिमान प्रोग्रामिंग भाषा है। C # कोड आमतौर पर Microsoft के .NET परिवार के टूल और रन-टाइम को लक्षित करता है, जिसमें .NET फ्रेमवर्क, .NET कोर और Xamarin अन्य शामिल हैं। C # या C # के औपचारिक विनिर्देश में लिखे गए कोड के बारे में प्रश्नों के लिए इस टैग का उपयोग करें।