2011-03-02 9 views
19

के लिए बाहरी फ़ाइल VS2010Web.Config, system.serviceModel

मैं अपने web.config में निम्नलिखित है का उपयोग करना (विस्तार निकाला गया)।

<system.serviceModel> 
    <behaviors /> 
    <services /> 
    <serviceHostingEnvironment multipleSiteBindingsEnabled="true"/> 
    <bindings /> 
    <client /> 
</system.serviceModel> 

मैं उपयोग करना चाहते हैं configSource एक ही गुण के रूप में appSettings एक और कॉन्फ़िग फ़ाइल से इन तत्वों में से विवरण प्राप्त करने के लिए उपयोग कर सकते हैं।

मैंने system.serviceModel या प्रत्येक उप नोड्स में configSource विशेषता को लागू करने का प्रयास किया है।

The 'configSource' attribute is not allowed 

मैं इस सवाल का जो यह दर्शाता है कि मैं क्या पसंद करेंगे में दूसरा जवाब (टॉम ब्रदर्स द्वारा) का संदर्भ लें: हालांकि, मैं अवैध नीला wavvy लाइन कह मिलता है।
Can a web.config read from an external xml file?

अतिरिक्त
यहाँ कि पद से विन्यास है। अमान्य नीली लहरदार लाइनें है।

<connectionStrings configSource="web\config\connectionStrings.config" /> 
<appSettings configSource="web\config\appSettings.config" /> 
<system.diagnostics configSource="web\config\diagnostics.config" /> 
<system.serviceModel> 
    <bindings configSource="web\config\serviceModelBindings.config" /> 
    <behaviors configSource="web\config\serviceModelBehaviors.config" /> 
    <services configSource="web\config\serviceModelServices.config" /> 
    <client configSource="web\config\serviceModelClient.config" /> 
</system.serviceModel> 

मैं इस मामले में configSource attibute का उपयोग कैसे कर सकता हूं?

+1

ठीक है, आप config.source को system.serviceModel पर लागू नहीं कर सकते क्योंकि यह एक कॉन्फ़िगरेशन सेक्शन समूह है। अंतर्निहित नोड्स में आपने configSource को कैसे लागू किया? क्या आप ऐसा दिख सकते हैं जो ऐसा दिखता है ताकि हम कॉन्फ़िगरेशन फ़ाइल देख सकें जो त्रुटियों को उत्पन्न कर रहा है? –

+0

@ डेविड होरस्टर: मैं इसके साथ सफल नहीं रहा हूं (अंतर्निहित नोड्स पर लागू)। लिंक्ड आलेख इसे सुझाता है, हालांकि मैं इसे काम नहीं कर सकता। मैंने उस पोस्ट से जवाब दिखाने के लिए अपनी पोस्ट को समायोजित किया है। –

+0

हां, यह वास्तव में विजुअल स्टूडियो की विफलता है। यदि आप इसका उपयोग करते हैं तो आपको वीएस में स्थायी चेतावनियों के साथ रहना होगा। – Abacus

उत्तर

29

आप <system.serviceModel> करने के लिए configSource= लागू नहीं कर सकते, क्योंकि है कि एक config अनुभाग समूह है - नहीं एक साधारण config अनुभाग, और configSource विशेषता सरल विन्यास वर्गों पर ही उपलब्ध है।

हालांकि आपको <system.serviceModel> के अंदर किसी भी नोड्स में कॉन्फ़िगरेशन स्रोत को लागू करने में सक्षम होना चाहिए - मैं इसे हर समय उत्पादन प्रणालियों में करता हूं - और यह बस काम करता है। क्या आपने वास्तव में भी कोशिश की है ??

या आपने खुद को विजुअल स्टूडियो द्वारा डर दिया है ... यह आपको दिखा सकता है (और आपको बता सकता है) कि configSource="...." की अनुमति नहीं है (उन भारी रेखांकितों द्वारा) - लेकिन यह विजुअल स्टूडियो एडिटर में बस एक कमी है - <system.serviceModel> के बच्चे नोड्स पर, यह configSource= विशेषता रखने की अनुमति है!

क्या आप हमें दिखा सकते हैं (अपना मूल प्रश्न संपादित करके) आपका उदा। serviceModelBehaviors.config जैसा दिखता है ??

भी: क्या यह फ़ाइल आपके वेब एप्लिकेशन की web\config उपनिर्देशिका में शारीरिक रूप से है ??

+4

दूर, विजुअल स्टूडियो ने मुझे डर दिया! यह काम करता है, धन्यवाद। –

+1

मुझे विजुअल स्टूडियो 2010 मिल रहा है जो मुझे बता रहा है कि कॉन्फ़िगरेशन स्रोत को 'system.serviceModel' के' बाइंडिंग 'और' क्लाइंट 'बाल तत्वों के लिए "अनुमति नहीं है"; जहां तक ​​मैं देख सकता हूं, विजुअल स्टूडियो 2010 संपादक सिर्फ गलत है। – Jez

+2

मुझे अभी भी यह VS2012 पर भी मिलता है – gverdouw