6

के लिए एकाधिक वेब.कॉन्फिग फ़ाइलों का प्रबंधन करना मेरे पास Azure पर चल रहा एक एएसपी.नेट एमवीसी 3 एप्लिकेशन है। यह डेटाबेस के लिए एसक्यूएल एज़ूर का भी उपयोग करता है।एक एमवीसी 3 एज़ूर एप्लिकेशन

मैं इस एप्लिकेशन को विभिन्न उदाहरणों (परीक्षण, डेमो, एकाधिक प्रोडक्शंस) पर तैनात करना चाहता हूं और प्रत्येक इंस्टेंस को इसके अपने अद्वितीय SQL डेटाबेस की आवश्यकता होती है।

मुझे पता है कि नए एज़ूर टूल्स अपडेट के साथ, आप एकाधिक सेवा कॉन्फ़िगरेशन प्रबंधित करने में सक्षम हैं। यह बहुत अच्छा है और लगभग मेरी समस्या का समाधान है। प्रोजेक्ट के एमवीसी भाग में web.config फ़ाइलों में SQL कनेक्शन स्ट्रिंग के साथ एकमात्र समस्या है।

मैं एकाधिक सेवा कॉन्फ़िगरेशन सुविधा के साथ सटीक समान कार्यक्षमता चाहता हूं, लेकिन SQL कनेक्शन स्ट्रिंग के लिए ऐसा करने के लिए।

आपकी मदद के लिए धन्यवाद !!

उत्तर

5

.Net configuration transformations नौकरी करना चाहिए। Azure सेवा कॉन्फ़िगरेशन की तरह, एक अलग वेब। कॉन्फ़िगरेशननाम.कॉन्फिग फ़ाइल प्रत्येक इंस्टेंस के लिए बनाई गई है जिसे आप तैनात करना चाहते हैं। उचित कॉन्फ़िगरेशन (परीक्षण, डेमो, इत्यादि) के साथ समाधान का निर्माण वेब.config में सही "उदाहरण" कॉन्फ़िगरेशन मान डालेगा।

+0

यह वह दृष्टिकोण है जिसका मैं उपयोग करता हूं और यह ठीक काम करता है। –

+0

आप ईमानदारी से किसी की कॉन्फ़िगरेशन फ़ाइलों पर XLS ट्रांसफ़ॉर्म लिखने की अनुशंसा कैसे कर सकते हैं? कॉन्फ़िगरेशन फाइलें पहले से ही एक बड़ी पर्याप्त मोरस हैं। –

3

मैं आमतौर पर सेवा डीफिनिशन में अपने एसक्यूएल कनेक्शन स्ट्रिंग्स रखता हूं। * सीएससीएफजी फाइलें। इस तरह आप उन्हें चल रहे उदाहरणों पर संपादित करने में सक्षम होने का अतिरिक्त लाभ प्राप्त करते हैं, जो वीआईपी स्वैप करने के लिए बहुत अच्छा है।

आप विकास मशीनों पर एमुलेटर बाहर का परीक्षण कर रहे हैं, यह config पर एक अमूर्त लिखने के लिए काफी सरल है:

class AzureConfig : IConfig 
{ 
    public string GetConnectionString(string name) 
    { 
    get 
    { 
     return RoleEnvironment.GetConfigurationSettingsValue(name); 
    } 
    } 
} 

class OnPremConfig : IConfig 
{ 
    public string GetConnectionString(string name) 
    { 
    get 
    { 
     return ConfigurationManager.ConnectionStrings[name].ConnectionString; 
    } 
    } 
} 

फिर RoleEnvironment.IsAvailable की जाँच करें और प्रासंगिक प्रकार वापस जाने के लिए अपने आईओसी कंटेनर की स्थापना की।