2012-09-21 19 views
9

web.config और machine.config के बीच क्या अंतर है?web.config और machine.config के बीच अंतर?

मैंने पढ़ा है कि: -

web.config फ़ाइलें एक विशेष वेब अनुप्रयोग के लिए विन्यास सेटिंग्स निर्दिष्ट करें, और आवेदन के रूट निर्देशिका में स्थित हैं; machine.config फ़ाइल वेब सर्वर पर वेबसाइटों के लिए कॉन्फ़िगरेशन सेटिंग्स निर्दिष्ट करती है, और $ WINDOWSDIR $ \ Microsoft.Net \ Framework \ Version \ Config में स्थित है।

क्या कोई ऐसी चीज है जो मुझे याद आ रही है या कोई अन्य तकनीकी पहलू है? मैं दोनों फाइलों के बारे में और जानना चाहता हूं।

उत्तर

13

प्रत्येक सीएलआर संस्करण में machine.config फ़ाइल है, साथ ही अतिरिक्त web.config फ़ाइल, जिसे मैं "मशीन स्तर web.config फ़ाइल" के रूप में संदर्भित करता हूं।

इसके अतिरिक्त, जैसा कि आप ध्यान देते हैं, प्रत्येक वेब एप्लिकेशन में web.config फ़ाइल भी होती है। वेब एप्लिकेशन के अंदर निर्देशिकाओं में web.config फ़ाइलें भी हो सकती हैं।

अब, मुख्य बिंदु यह है कि कॉन्फ़िगरेशन फ़ाइलें एक-दूसरे से प्राप्त होती हैं। इसका अर्थ यह है कि, एक वेब एप्लिकेशन machine.config फ़ाइल और मशीन स्तर web.config फ़ाइल (इसके दिए गए फ्रेमवर्क संस्करण के लिए) में परिभाषित सेटिंग्स को पढ़ेगा, और इसकी अपनी web.config फ़ाइल होगी।

machine.config में चीजों को परिभाषित करने के लिए एक सामान्य उपयोग केस सर्वर पर कई अनुप्रयोगों के बीच मूल्यों को साझा करना होगा, जैसे कनेक्शन स्ट्रिंग शायद, या एसएमटीपी सर्वर सेटिंग्स, ऐसी चीजें।

+2

ग्रेट उत्तर लेकिन मेरे पास थोड़ा फिक्स है: यह "प्रत्येक .NET Framework" नहीं है बल्कि प्रत्येक सीएलआर संस्करण है। (ई.एक्स.नेट एफएक्स 3.0 अपने स्वयं के सीएलआर के बिना आता है, इसलिए उस .net fw के लिए कोई नई मशीन.कॉन्फिग नहीं है) – Tamir

4

ये कुछ सबसे महत्वपूर्ण विवरण हैं; हालांकि वास्तव में, machine.config केवल एएसपी.नेट के लिए कॉन्फ़िगरेशन से परे चला जाता है। एक और फ़ाइल है जिसमें आपको देखना चाहिए, जो (मुझे लगता है) machine.config के समान स्थान पर है; वह 'रूट' web.config है, जो machine.config और साइट-विशिष्ट web.config फ़ाइलों के बीच जाता है, और निश्चित रूप से, ASP.NET विशिष्ट है।

आईआईएस प्रबंधन कंसोल में सर्वर स्तर पर आपके द्वारा परिवर्तित की गई कुछ सेटिंग्स रूट web.config रूट में की जाती हैं।

ध्यान दें कि यह पदानुक्रम प्रति- .NET संस्करण है; (2.0 में एक है; 4.0 का अपना है)

एक और नोट: आपके पास साइट के रूट से उप web.config फ़ाइलें और साइट या रूट से उप-अनुप्रयोग हो सकते हैं जो 'बेस' को और संशोधित करते हैं।

अंत में, एक चेतावनी: उप-स्तर web.config फ़ाइलों में सभी सेटिंग्स को ओवरराइड नहीं किया जा सकता है। यहां वर्णित पदानुक्रम के किसी भी स्तर पर कुछ सेटिंग्स को लॉक करने के लिए यह संभव है (और कुछ डिफ़ॉल्ट रूप से हैं)।

2

machine.config आपके सिस्टम पर बहुत सारी डिफ़ॉल्ट सेटिंग्स के साथ अंतिम मास्टर कॉन्फ़िगरेशन फ़ाइल है। जब आप web.config फ़ाइलों का उपयोग करते हैं, जो कैस्केडिंग ऑर्डर में किया जाता है, तो आप वास्तव में इन सेटिंग्स को नए लोगों के साथ ओवरराइट कर रहे हैं।

3

मुझे इसे साफ़ करने दें: - एएसपी.नेट में, एक विन्यास फाइल पदानुक्रम है और machine.config फ़ाइल रूट अर्थात् मशीन पर है।कॉन्फ़िगरेशन फ़ाइल में कॉन्फ़िगरेशन सेटिंग्स होती हैं जो आपके द्वारा बनाए गए प्रत्येक वेब एप्लिकेशन पर लागू होती हैं। यह Windows/Microsoft .NET/फ्रेमवर्क/[संस्करण] में मौजूद है/config आप एक ही शारीरिक रास्ते में एक web.config फ़ाइल मिलेगा .इस web.config फ़ाइल machine.config से कॉन्फ़िगरेशन सेटिंग इनहेरिट (मैं इसे एक नाम दे) अब आपके पास अपना एप्लिकेशन फ़ोल्डर है जिसमें आपके पास web.config (रूट स्तर पर) है। यह web.config (मैं इसे नाम बी) ए से कॉन्फ़िगरेशन सेटिंग इनहेरिट यदि आप उप-निर्देशिका web.config से आवेदन फ़ोल्डर की एक उप-निर्देशिका में web.config बी से कॉन्फ़िगरेशन सेटिंग इनहेरिट है और वह कैसे सीढ़ी नीचे

चला जाता है
संबंधित मुद्दे