2013-03-22 7 views
5

पर ओवरराइड नहीं कर रहा है मेरे पास एक ऐसी वेबसाइट है जिसमें वर्चुअल निर्देशिका है जिसमें एक वेबसाइट भी शामिल है, और जब मैं वर्चुअल निर्देशिका से कोई पृष्ठ लॉन्च करने का प्रयास करता हूं, तो मुझे एक प्राप्त होता है आईआईएस 7.5 त्रुटि है कि नाम (कनेक्शन स्ट्रिंग से) संग्रह में पहले से ही है। ऐप पूल में पहचान के रूप में डोमेन उपयोगकर्ता को जोड़ने से पहले यह कोई समस्या नहीं थी। क्या किसी को पता है कि ये क्यों हो रहा है? मैं इस धारणा के तहत था कि उप-स्तर के एप्लिकेशन का web.config डिफ़ॉल्ट रूप से माता-पिता को ओवरराइड करता है। और फिर, यह एक बार काम कर रहा था जब तक कि मैंने एक कस्टम पहचान जोड़ा।वर्चुअल निर्देशिका में Web.config पेरेंट वेबसाइट के Web.config

पृष्ठ पर त्रुटि "पार्सर त्रुटि संदेश: प्रविष्टि 'dbname' पहले से ही जोड़ा जा चुका है।"

जहां dbname दोनों कनेक्शन स्ट्रिंग्स (यानी माता-पिता और वर्चुअल निर्देशिका) में है। मैं कनेक्शन स्ट्रिंग्स में से किसी एक को हटा नहीं सकता क्योंकि वर्चुअल निर्देशिका केवल परीक्षण उद्देश्यों के लिए बनाई गई है, लेकिन उत्पादन में यह अपनी वेबसाइट के रूप में चलती है।

उत्तर

7

एक उप वेब.कॉन्फिग एप्लिकेशन के बावजूद माता-पिता को ओवरराइड नहीं करता है। सभी web.configs प्राथमिक एप्लिकेशन की जड़ तक सभी तरह से ढेर होंगे। उप-अनुप्रयोग फ़ोल्डर को कनेक्शन स्ट्रिंग कुंजी का उपयोग करने के लिए जो पहले से उपयोग में है, इसे पहले हटा दिया जाना चाहिए या सभी कनेक्शन स्ट्रिंग को साफ़ किया जाना चाहिए।

<remove key="yourConnectionStringName" /> 
+1

कोई विचार यह पहले क्यों नहीं हुआ था? मैं इस तरह के दोनों अनुप्रयोगों को वर्षों से स्थापित कर रहा हूं और कभी भी संघर्ष में भाग नहीं पाया। इसके अलावा, मैं उप ऐप में कनेक्शन स्ट्रिंग को बहिष्कृत नहीं कर सकता क्योंकि यह आमतौर पर सर्वर के रूट स्तर पर उपयोग किया जाता है। – u84six

+0

@ u84six: यह इसे रूट स्तर के लिए नहीं हटाएगा, यह केवल उस स्तर पर एप्लिकेशन से हटा देगा (और उस एप्लिकेशन के किसी भी बच्चे)। नहीं, मैं ईमानदारी से यह नहीं कह सकता कि यह अचानक क्यों है। आपके द्वारा वर्णित परिवर्तन में इस संघर्ष में कोई भूमिका नहीं है। –

+0

@MystereMan: यह सही नहीं है। एक वर्चुअल निर्देशिका को किसी भी सामान्य उपनिर्देशिका के रूप में माना जाएगा और web.config फ़ाइलों को ढेर और वारिस जारी रहेगा। http://msdn.microsoft.com/en-us/library/ms178685(v=vs.100).aspx –

0

@ u84six:

<connectionStrings> 
    <clear /> 
    <your connection string> 
<connectionStrings> 

तुम सिर्फ निकालने के लिए एकल कनेक्शन स्ट्रिंग इस का उपयोग करना चाहते हैं: यदि आप चाहते हैं यह वास्तव में अकेले आवेदन खड़े एक बच्चे के रूप अपने कनेक्शन तार जोड़ना होने के लिए ,

आज यह मेरे साथ हुआ था। मेरे पास एक ही रूट वेबसाइट में कुछ वेबसाइटें और वेबसाइसेस थीं। रूट डिफ़ॉल्ट आईआईएस वेबसाइट (डिफ़ॉल्ट वेब साइट) है और मुझे लगता है कि यह सी: \ Inetpub \ wwwroot पर इशारा कर रहा था। यह एक विकास पर्यावरण है।

this answer पढ़ने के बाद, मुझे पता चला कि मेरे वेब सर्विसेज में से एक रूट वेबसाइट थी (अभी भी यह सुनिश्चित नहीं है कि इसमें क्या बदलाव आया ... शायद 2010 से 2012 तक माइग्रेशन के बाद दृश्य स्टूडियो)। वह webservice कनेक्शन में कनेक्शन स्ट्रिंग का उपयोग कर रहा था। मैं पथ को वापस C: \ Inetpub \ wwwroot \ में बदलता हूं और सब कुछ सामान्य हो गया।

शायद कुछ ऐसा ही हुआ।