कनेक्शन स्ट्रिंग्स के मामले में, एक साझा फ़ाइल को इंगित करना वास्तव में संभव है। यदि साझा फ़ाइल एक नेटवर्क यूएनसी पर है, तो उसे मशीन पर प्रशासनिक विशेषाधिकार की आवश्यकता होती है जहां ऐप को होस्ट किया जाएगा।
समाधान: अपने web.config में, स्थानीय कॉन्फ़िगरेशन फ़ाइल को इंगित करने के लिए configSource का उपयोग करें। .Net प्रतिबंधों के कारण, यह रूट कॉन्फ़िगरेशन फ़ाइल के स्तर पर या उससे नीचे होना चाहिए। मैं केवल ऐप फ़ोल्डर में एक फ़ाइल को इंगित करता हूं:
<connectionStrings configSource="ConnectionStrings.config" />
एक साझा स्थान में जो एप्लिकेशन पूल उपयोगकर्ता द्वारा पहुंच योग्य है, साझा कनेक्शन स्ट्रिंग्स युक्त कॉन्फ़िगरेशन फ़ाइल जोड़ें। इस फ़ाइल में कनेक्शनस्ट्रीमर्स सेक्शन के अलावा कोई भी xml नहीं होना चाहिए। साझा की गई फ़ाइल, ConnectionStrings.config, इस तरह दिखाई देती है:
<connectionStrings>
<clear/>
<add name="connString1" connectionString="connString1 info goes here"/>
<add name="connString2" connectionString="connString2 info goes here"/>
</connectionStrings>
अब चाल। बाहरी, साझा कॉन्फ़िगर फ़ाइल की ओर इशारा करते हुए अपने ऐप फ़ोल्डर में एक विंडोज प्रतीकात्मक लिंक बनाएं। ऐसा करने के लिए आपको व्यवस्थापक विशेषाधिकारों की आवश्यकता होगी:
mklink ConnectionStrings.config \\someServer\someShare\someFolder\ConnectionStrings.config
हमने अभी-अभी आउटसोर्स किया है। नेट। कॉन्फ़िगरेशन सिस्टम कनेक्शन स्ट्रिंग्स को खोजने के लिए configSource सेटिंग का उपयोग करेगा। प्रतीकात्मक लिंक .Net के लिए एक फ़ाइल की तरह दिखता है, और प्रतीकात्मक लिंक साझा कॉन्फ़िगरेशन फ़ाइल में हल होता है।
कैविट्स: साझा की गई फ़ाइल में परिवर्तन स्वचालित रूप से .Net में एक एप्लिकेशन पुनरारंभ को ट्रिगर नहीं करता है। IIS के मामले में, वेब साइट या ऐप पूल को मैन्युअल रूप से पुनरारंभ करने की आवश्यकता होगी।
प्रतीकात्मक लिंक बनाने के लिए प्रशासनिक विशेषाधिकारों की आवश्यकता के कारण, यह दृष्टिकोण हर किसी के लिए काम नहीं कर सकता है। दो संबंधित विकल्प हैं जो काम कर सकते हैं यदि साझा फ़ाइल एक ही तार्किक ड्राइव पर है - हार्ड लिंक और जंक्शन। देखें इस चर्चा और इस चर्चा के बारे में अधिक जानकारी के लिए।