हम सी # .NET 3.5 में लिखी एक जटिल प्रणाली चलाते हैं, जिसमें 20+ वेबसाइटें, 10+ विंडोज सेवाएं और विभिन्न अनुसूचित कार्य और सहायक ऐप्स शामिल हैं।एकाधिक कॉन्फ़िगरेशन फ़ाइल उदाहरणों को संभालने का सबसे अच्छा तरीका?
इनमें से प्रत्येक को हमारे ढांचे और व्यापार तर्क डीएलएल के साथ बंडल किया गया है। इन डीएलएल की व्यापक कॉन्फ़िगरेशन सेटिंग्स हैं, और यह एक दुःस्वप्न में बदल गया है जहां हम एक ही कक्षा पुस्तकालयों के कई उदाहरणों के लिए 40 से अधिक कॉन्फ़िगरेशन फ़ाइलों को बनाए रखते हैं।
हम अपने डीएलएल को विभिन्न कारणों से जीएसी में पंजीकृत नहीं करते हैं: 1) हम पूरी प्रणाली के पुनर्निर्माण किए बिना या अनावश्यक डाउनटाइम के बिना चुनिंदा परियोजनाओं में तेजी से रोलिंग की लचीलापन पसंद करते हैं। 2) डीएलएल के कुछ उदाहरणों को थोड़ा अलग विन्यास की आवश्यकता होती है; उदाहरण के लिए कुछ परियोजनाएं विभिन्न कनेक्शन स्ट्रिंग्स, अधिसूचना ई-मेल पते आदि का उपयोग करती हैं।
हमने Web.config/App.config में AppSettings फ़ाइल/configSource विशेषताओं के साथ प्रयोग किया, लेकिन वे केवल परियोजनाओं में नहीं बल्कि सापेक्ष पथों के साथ काम करते हैं। हमने मशीन.कॉन्फिग में डिफ़ॉल्ट को सहेजने पर विचार किया लेकिन यह एक मिशन है, जो बहुत ही अव्यवस्थित है और हमारी परियोजनाओं से संबंधित महत्वपूर्ण सामग्री से भरा है।
हमारा वर्तमान "समाधान" हमारे स्वयं के कॉन्फ़िगरेशन फ़ाइल प्रारूप का उपयोग करना है, जो पहले वर्तमान प्रोजेक्ट के "बिन" फ़ोल्डर में कॉन्फ़िगरेशन की जांच करता है, और यदि यह अस्तित्व में नहीं है तो यह हार्ड-कोडित केंद्रीय स्थान से लोड होता है। यह आवश्यक होने पर सेटिंग्स को ओवरराइड करने की अनुमति देता है लेकिन शेष समय में डिफ़ॉल्ट सेटिंग्स का उपयोग करता है।
आखिरकार हम जो चाहते हैं वह प्रत्येक केंद्रीय लाइब्रेरी डिफ़ॉल्ट सेटिंग्स को केंद्रीय स्थान पर रखना है, और फिर प्रत्येक इंस्टेंस में एक वैकल्पिक कॉन्फ़िगरेशन फ़ाइल हो सकती है जो डिफ़ॉल्ट रूप से भिन्न सेटिंग्स को ओवरराइड करता है।
क्या इस समस्या को हल करने का कोई सुझाव, उद्योग-मानक तरीका .NET में है?
मैं इस तरह की चीज़ पर कोई विशेषज्ञता नहीं ले सकता लेकिन यह रजिस्ट्री के लिए क्या नहीं है? मुझे यकीन है कि यह समस्या का अपना सेट है, लेकिन सोच रहा है कि इसे समाधान के रूप में माना जाना चाहिए? –
इन सभी को एक ही सर्वर पर चलाएं? – Amirshk
(अस्वीकरण: यह कुछ मैंने लिखा है): इस पर एक समान धागा है: http://stackoverflow.com/questions/1987013/how-to-setup-web-config-for-build-to-multi- वातावरण- बिना कोड-परिवर्तन/2024 9 21 # 2024 9 21, और मैंने वहां लिखा एक टूल लिखा है, जो आपकी मदद भी कर सकता है। FWIW। –