2015-11-22 5 views
8

मेरे पास ASP.Net 5 एप्लिकेशन है जहां मेरे पास config.json फ़ाइल में संग्रहीत कुछ कॉन्फ़िगरेशन मान हैं। मेरी config.json फ़ाइल इस तरह कुछ है।एएसपी.Net 5 में Azure वेब ऐप में config.json फ़ाइल में कॉन्फ़िगरेशन मानों को ओवरराइड करना

{ 
    "AppSettings": { 
    "SiteEmailAddress": "[email protected]", 
    "APIKey": "some_api_key" 
    } 
} 

मैं Startup.cs फ़ाइल इस तरह में उपयोग करने के लिए config.json फ़ाइल की स्थापना कर रहा हूँ।

public static IConfigurationRoot Configuration; 

public Startup(IApplicationEnvironment appEnv) { 

    var builder = new ConfigurationBuilder(appEnv.ApplicationBasePath) 
       .AddJsonFile("config.json") 
       .AddEnvironmentVariables(); 
    Configuration = builder.Build(); 
} 

और इस तरह config सेटिंग को एक्सेस ..

var email = Startup.Configuration["AppSettings:SiteEmailAddress"]; 

इससे पहले ASP.Net में हम Web.Config फ़ाइल का उपयोग Azure अनुप्रयोग सेटिंग्स अनुभाग में अनुप्रयोग सेटिंग में इन ऐप्लिकेशन सेटिंग की दुकान और उन्हें ओवरराइड करने के लिए कर सकते हैं और यह किसी भी मुद्दे के साथ काम करता है। लेकिन मैं एएसपी.Net 5 ऐप में वही काम कैसे कर सकता हूं।

मैं Azure में ऐप सेटिंग्स अनुभाग में config.json फ़ाइल में कॉन्फ़िगरेशन मानों को ओवरराइड कैसे कर सकता हूं।

उत्तर

19

उन्हें Azure में ऐप सेटिंग्स के रूप में जोड़ें, जैसा कि आप उपयोग करते हैं। नेस्टेड config मानों के लिए, का उपयोग

AppSettings:SiteEmailAddress 

आदि ... (यहां AppSettings क्या आप अपने config.json में इस्तेमाल की चर्चा करते हुए, Azure एप्लिकेशन सेटिंग करने के लिए समानता संयोग है)

AddEnvironmentVariables() आप की तरह काम करने के लिए किया गया है।

+0

धन्यवाद .. पूरी तरह से काम करता है .. –

+0

को .NET कोर में 'appsettings.json' भी कहा जाता है। – silkfire

0

मान लें कि आपके पास appsettings.json है, तो आप एक और फ़ाइल एपेटिंग जोड़ सकते हैं। {पर्यावरण} .json, यानी appsettings.Production.json। केवल उत्पादन फ़ाइल में परिभाषित सेटिंग्स, appsettings.json में सेटिंग्स को ओवरराइड कर देगी। अब, स्टार्टअप

var builder = new ConfigurationBuilder() 
    .AddJsonFile("appsettings.json") 
    .AddJsonFile($"appsettings.{env.EnvironmentName}.json", true); 

अगला की निर्माता के लिए निम्न जोड़ने के लिए, आप जहां सभी सर्वरों परिभाषित कर रहे हैं launchSettings.json के पास जाओ और उत्पादन करने के लिए वातावरण चर का अद्यतन करना चाहिए। उदाहरण के लिए,

"web": { 
    "commandName": "web", 
    "environmentVariables": { 
    "Hosting:Environment": "Production" 
    } 

अब एज़ूर पर तैनात करें।

+0

क्या होस्टिंग को बदलने की कोई तरीका नहीं है: पर्यावरण हर बार तैनात करते हैं? क्या हम इसे स्थायी बना सकते हैं? – Martin

+0

आपको लॉन्च Settings.json फ़ाइल में प्रत्येक वातावरण के लिए "प्रोफ़ाइल" परिभाषित करना चाहिए। प्रत्येक प्रोफ़ाइल में इसका अपना "होस्टिंग: पर्यावरण" होना चाहिए। यानी आईआईएस एक्सप्रेस => विकास के लिए, वेब => उत्पादन –

+2

मैं देखता हूं। लेकिन कैसे Azure को "वेब" प्रोफ़ाइल चुनने के बारे में पता है? अगर मैं एक "Azure उत्पादन" प्रोफाइल चाहते हैं तो क्या होगा? – Martin

संबंधित मुद्दे