ASP.NET web.config: configSource बनाम फ़ाइल विशेषताएँ


187

web.configASP.NET- अनुप्रयोग में एक -file के भीतर , कॉन्फिग के कुछ सेक्शन, जैसे appSettingsऔर connectionStrings, विशेषताओं का समर्थन करता है fileऔरconfigSource

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

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

जवाबों:


300

file गुण

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

configSource गुण

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

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

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


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

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

1
Wao! महान जवाब ... यह वास्तव में मेरी मदद की will not cause web application to restart when modifying the specified file:। मुझे कस्टम सेक्शन के लिए बाहरी फ़ाइल में किसी भी सेटिंग को संशोधित करते समय एप्लिकेशन को पुनरारंभ करने की आवश्यकता है और इसलिए जाने का रास्ता साथ है configSource। दिलचस्प है कि मैं उपयोग कर रहा था fileऔर विभिन्न अनुभाग काम कर रहे थे। fileइसके अलावा अन्य खंडों के लिए भी काम करता है, appSettingsलेकिन उत्तर में अच्छी तरह से समझाया गया वो गोच हैं।
लेनियल मैकाफेर्री

4
मैं configSource सूची में जोड़ना चाहूंगा It must refer to a file in the same directory or in a subdirectory as the configuration file.:। और फ़ाइल सूची में भी It can reside outside the directory of the configuration file itself.:।
फ्रैंकफॉर्म्स

2
AppSettings तत्व के लिए अद्यतित लिंक - docs.microsoft.com/en-us/dotnet/framework/configure-apps/…
जारोड
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.