2013-01-16 30 views
12

विंडोज़ सेवा जैसे अनुप्रयोग बनाते समय, "आधार पर" दुनिया में, मैं क्लासिकल रूप से एप्लिकेशन कनेक्शन के बारे में विभिन्न कॉन्फ़िगरेशन जानकारी संग्रहीत करने के लिए ऐप.कॉन्फिग फ़ाइल का उपयोग करता हूं, डेटाबेस कनेक्शन स्ट्रिंग्स से डब्ल्यूसीएफ एंडपॉइंट जानकारी तक।सीएससीएफजी फाइलें और ऐप.कॉन्फिग फाइलें कैसे Azure वर्कर भूमिकाओं के लिए एक दूसरे से संबंधित हैं?

Azure वर्कर रोल दुनिया में, अब मुझे .cscfg फ़ाइलों के साथ प्रस्तुत किया गया है, जिसमें "भूमिका के लिए" जानकारी शामिल है।

मुझे समझ में नहीं आता कि क्या ये फ़ाइलें एप्लिकेशन की कॉन्फ़िगरेशन को पूरक करने के लिए हैं या पूरी तरह से App.config फ़ाइलों को प्रतिस्थापित करती हैं। Azure वर्कर भूमिकाओं को कॉन्फ़िगर करने के लिए ये दो फ़ाइलें कैसे काम करती हैं?

उत्तर

15

बहुत बेसिक स्पष्टीकरण:

वैचारिक वे एक ही कर रहे हैं। पारंपरिक एप्लिकेशन में, आप एप्लिकेशन से संबंधित विभिन्न सेटिंग्स को परिभाषित करने के लिए app.config फ़ाइल का उपयोग करते हैं (ऐपसेटिंग अनुभाग में)। इसी तरह, आप अपने क्लाउड एप्लिकेशन से संबंधित विभिन्न सेटिंग्स को परिभाषित करने के लिए cscfg फ़ाइल का उपयोग करते हैं (कॉन्फ़िगरेशन सेटिंग्स अनुभाग में)। App.config फ़ाइल की तरह, आप cscfg फ़ाइल में अन्य चीजों को परिभाषित करते हैं (उदा। अपने क्लाउड एप्लिकेशन के उदाहरणों की संख्या)।

यदि आप चाहते हैं, तो आप अभी भी app.config फ़ाइल में कुछ सेटिंग्स को परिभाषित कर सकते हैं लेकिन ध्यान में रखना एक बात यह है कि app.config फ़ाइल को "पैक किया गया" और तैनात किया जाता है और सेटिंग्स को बदलने के लिए, आप करेंगे अपने आवेदन को दोबारा खोलना और इसे तैनात करना है। हालांकि आप एप्लिकेशन को पुन: पैकेज करने और पुन: नियोजित किए बिना पोर्टल या सेवा प्रबंधन API का उपयोग कर फ्लाई पर सीएससीएफजी फ़ाइल में सेटिंग्स बदल सकते हैं। उदाहरण के लिए परिदृश्य पर विचार करें जहां आप सेटिंग्स फ़ाइल में डेटाबेस कनेक्शन स्ट्रिंग को परिभाषित कर रहे हैं। यदि आप इसे निर्दिष्ट करने के लिए app.config में निर्दिष्ट करते हैं, तो आपको app.config फ़ाइल में परिवर्तन करना होगा -> एप्लिकेशन बनाएं -> एप्लिकेशन प्रकाशित करें। जहां एक सीएससीएफजी फ़ाइल के मामले में, आप पोर्टल में इस मान को बदल देंगे।

+0

मुझे वेब नौकरी के लिए .cscfg फ़ाइल कहां मिल सकती है? मैंने इसे सामान्य वेब ऐप के रूप में बनाया (अजीब क्लाउड सेवा के रूप में नहीं)। मैं .cscfg फ़ाइल कैसे उत्पन्न कर सकता हूं? – Sridharan

11

वेब/वर्कर भूमिकाओं के लिए पारंपरिक कॉन्फ़िगरेशन फ़ाइलें (ऐप/वेब.कॉन्फिग) ऑन-प्रिमाइसेस परिनियोजन पर काम करते रहेंगे। लेकिन यह जानना महत्वपूर्ण है कि यह फ़ाइल सेवा पैकेज में शामिल है, जिसका अर्थ है कि यह तैनाती का हिस्सा है।

इसका मतलब है कि आप अपने ऐप/web.config में अपने एप्लिकेशन को फिर से तैनात किए बिना सेटिंग्स को नहीं बदल सकते हैं। दूसरी तरफ ServiceConfiguration.cscfg कुछ ऐसा है जो क्लाउड सर्विस परिनियोजन स्लॉट स्तर पर परिभाषित किया गया है, वास्तविक सेवा पैकेज के बगल में। इसका मतलब है कि आप अपने एप्लिकेशन को दोबारा तैनात किए बिना इस कॉन्फ़िगरेशन फ़ाइल को बदल सकते हैं। RoleEnvironment.GetConfigurationSettingValue (ConfigurationManager.AppSettings के समान) को कॉल करके इन सेटिंग्स को आपके एप्लिकेशन से भी एक्सेस किया जा सकता है।

यदि आप ऑन-प्रिमाइसेस और विंडोज़ एज़ूर दोनों में काम करने वाले एप्लिकेशन को बनाने पर विचार करते हैं, तो Microsoft.WindowsAzure.ConfigurationManager package का उपयोग करने पर विचार करें। जो स्वचालित रूप से cscfg या ऐप/web.config चुनता है, जहां आपका एप्लिकेशन कहां चलता है।

युक्ति: RoleEnvironment की सदस्यता ले कर। परिवर्तन/परिवर्तित घटना आप इस कॉन्फ़िगरेशन फ़ाइल में परिवर्तनों को रोक सकते हैं। उदाहरण के लिए कोड में web.config को अपडेट करने के लिए आप इसे संभाल सकते हैं (explained here)।

+0

उदाहरण कोड: Microsoft.Azure.CloudConfigurationManager.GetSetting ("xxx") –

+0

क्या मैं वेब ऐप के लिए .cscfg फ़ाइल का उपयोग कर सकता हूं? – Sridharan