2011-08-04 14 views
142

एक web.config -file के भीतर एक एएसपी.NET-अनुप्रयोग में कॉन्फ़िगरेशन के कुछ वर्ग, जैसे appSettings और connectionStrings, गुण file और configSource गुणों का समर्थन करता है।ASP.NET web.config: configSource बनाम फ़ाइल विशेषताएँ

file -attribute और configSource -attribute का उपयोग करने के बीच क्या अंतर है? आपको किस विशेषता का उपयोग करना चाहिए और क्या आप दोनों का उपयोग कर सकते हैं?

<?xml version="1.0"?> 
<configuration> 
    <appSettings file="AppSettings.config"> 
    </appSettings> 
    <connectionStrings configSource="ConnectionStrings.config">  
    </connectionStrings> 
    <!-- ... --> 
</configuration> 

उत्तर

229

file विशेषता

  • एक बाहरी फ़ाइल है कि कस्टम अनुप्रयोग विन्यास सेटिंग्स appSettings अनुभाग के लिए
  • विशिष्ट
  • (और ओवरराइड) सेटिंग्स में मर्ज हो जाएगी में शामिल करने के लिए एक रिश्तेदार पथ निर्दिष्ट करता है .config फ़ाइल
  • आर के वेब अनुप्रयोग का कारण नहीं बनेगा एस्टार्ट निर्दिष्ट फ़ाइल को संशोधित करते समय
  • http://msdn.microsoft.com/en-US/library/ms228154(v=vs.100).aspx
  • Configuration का उपयोग करना। AppSettingsSettings। में सभी सेटिंग्स एक Configuration पर मुख्य .config में वापस विलय कर दिया जा रहा है Add एपीआई परिणाम देगा। Save कॉल करें।
  • के बाद से नेट 1,1

configSource विशेषता

file विशेषता कस्टम सेटिंग्स युक्त है जैसे आप web.config फ़ाइल के appSettings प्रविष्टि में क्या एक बाहरी फ़ाइल निर्दिष्ट करता है। इस बीच, configSource विशेषता में निर्दिष्ट बाहरी फ़ाइल में उस अनुभाग के लिए सेटिंग्स शामिल हैं जिन्हें आप कॉन्फ़िगरेशन स्रोत घोषित करते हैं। उदाहरण के लिए, यदि आप पृष्ठ अनुभाग के configSource विशेषता का उपयोग करते हैं, तो बाहरी फ़ाइल में पृष्ठ अनुभाग के लिए सेटिंग्स शामिल होंगी।

कस्टम सेटिंग्स फ़ाइल गुण में specifified बाहरी config में घोषित appSettings web.config फ़ाइल में खंड में सेटिंग्स के साथ विलय हो जाएगा। इस बीच, configSource विलय का समर्थन नहीं करता, तो इसका मतलब है कि आप बाहरी फ़ाइल में पूरे अनुभाग सेटिंग्स स्थानांतरित करने के लिए होगा।

http://www.codeproject.com/Messages/1463547/Re-difference-between-configSource-and-file-attrib.aspx

+7

इसके अलावा, "फाइल" विशेषता आप तत्काल निर्देशिका वृक्ष है, जो विभिन्न साइटों के बीच आम सेटिंग्स साझा करने के लिए महत्वपूर्ण है बाहर फ़ाइलों को निर्दिष्ट करने के लिए अनुमति देता है। दुर्भाग्यवश, "कॉन्फ़िगरेशन" विशेषता आपको धारावाहिक पेड़ के भीतर फ़ाइलों पर प्रतिबंधित करती है, इसलिए साझा सेटिंग्स के लिए आपको आईआईएस में वर्चुअल निर्देशिका निर्दिष्ट करने की आवश्यकता होती है। –

+6

मेरी उपरोक्त टिप्पणी पूरी तरह से सही नहीं थी, और मैंने इसे संपादित करने के लिए कुछ हद तक मनमाने ढंग से पांच मिनट की खिड़की को याद किया है! आप "configsource" फ़ाइलों को तत्काल निर्देशिका वृक्ष के बाहर रहने की अनुमति देने के लिए IIS में वर्चुअल निर्देशिका सेट नहीं कर सकते हैं। तो वास्तव में काफी सीमित है। मैंने इसे जंक्शन बिंदु (या एनटीएफएस हार्ड लिंक) का उपयोग करके हल किया लेकिन यह बिल्कुल सुंदर नहीं है ... –

+0

WAO! महान जवाब ... यह वास्तव में मेरी मदद करता है: 'निर्दिष्ट फ़ाइल को संशोधित करते समय वेब एप्लिकेशन को पुनरारंभ करने का कारण नहीं होगा'। कस्टम अनुभाग के लिए बाहरी फ़ाइल में किसी भी सेटिंग को संशोधित करते समय मुझे पुनरारंभ करने के लिए ऐप की आवश्यकता होती है और इसलिए जाने का तरीका 'configSource' के साथ है। दिलचस्प है कि मैं 'फाइल' का उपयोग कर रहा था और विभिन्न वर्ग काम कर रहे थे। 'file'' ऐपसेटिंग 'के अलावा अन्य अनुभागों के लिए भी काम करता है लेकिन उत्तर में उन गॉथस अच्छी तरह से समझाए गए हैं। –

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