2009-06-16 13 views
5

क्या वर्चुअल निर्देशिकाओं और/या आभासी अनुप्रयोगों का उपयोग करना संभव है, जो दो वेब साइट्स को सेट करने के लिए समान अनुप्रयोग कोड (एएसपीएक्स पेज इत्यादि) साझा करते हैं लेकिन अलग-अलग वेब हैं .config फाइलें? साइट्स और कोड एक ही सर्वर पर एक ही आईआईएस पर चल रहे हैं।दो एएसपी.NET साइटें एप्लिकेशन फ़ाइलों को साझा करती हैं लेकिन विभिन्न वेब.कॉन्फिग

मैं आईआईएस 6.

+1

दो .config फ़ाइलों के बीच क्या अंतर है? शायद प्रमाणीकरण और प्रमाणीकरण से संबंधित है? इन तरह के मुद्दों को संभालने के अन्य तरीकों को ढूंढना आम तौर पर संभव है (जैसे, इंटरनेट साइट के बीच साझा करना और इंट्रानेट साइट जो इसे प्रबंधित करता है)। –

+0

केवल ऐप सेटिंग्स कुछ अंतर है। मैं जानना चाहता था कि क्या मैं कोई कोड बदलने के बिना ऐसा कर सकता हूं। –

+0

@ जैकोब- आप किसी प्रकार की ऐप विशिष्ट कुंजी को उपसर्ग करके ऐप सेटिंग्स के साथ ऐसा कर सकते हैं, लेकिन फिर भी उसे कोड परिवर्तन की आवश्यकता होगी। – RichardOD

उत्तर

5

के लिए देखने की आवश्यकता हो सकती है यदि आप कोड को एक ही स्थान पर रखना चाहते हैं तो संक्षिप्त उत्तर नहीं है। शायद सबसे अच्छा समाधान यह है कि एप्लिकेशन को निर्धारित करने के लिए एप्लिकेशन को कस्टम कॉन्फ़िगरेशन फ़ाइल लोड करना है (संभवतः हेडर होस्ट करें?)।

ConfigurationManager.OpenExeConfiguration जैसी कुछ उपयोगी हो सकती है।

मुझे लगता है कि एक विकल्प एक कॉन्फ़िगरेशन सम्मेलन के साथ आना है जहां आपके पास एक फ़ाइल में सबकुछ है और आप जो चाहते हैं उसके लिए विशिष्ट सेटिंग्स प्राप्त करने के लिए GetSection (किसी प्रकार के ऐप विशिष्ट उपसर्ग के साथ) का उपयोग करें।

+0

में वेब.कॉन्फिग की आवश्यकता होगी हाँ, मुझे पता है कि यह अन्य तरीकों से किया जा सकता है। मैं बस उम्मीद कर रहा था कि मैं मौजूदा कोड को बदले बिना कर सकता हूं। –

+0

संक्षिप्त उत्तर "हां" है, हालांकि वर्चुअल निर्देशिका का उपयोग नहीं करते हैं, लेकिन एनटीएफएस हार्ड-लिंक: https://stackoverflow.com/questions/45889661/several-asp-net-sites-that-are-sharing-plication-files 'वर्चुअल निर्देशिकाओं के लिए web.config से कुछ लेना देना नहीं है' के लिए -but-use-different-th –

0

का उपयोग कर रहा हो सकता है, आभासी आवेदन में web.config इस्तेमाल किया जाएगा। यदि लेआउट पदानुक्रमित है तो आपको web.config विरासत

+0

मुझे जोड़ना चाहिए, आपको एप्लिकेशन कोड की 2 भौतिक प्रतियों की आवश्यकता होगी क्योंकि प्रत्येक – Pharabus

1

यह संभव नहीं है।

क्यों ???

एएसपीनेट कार्यकर्ता प्रक्रिया बनना भौतिक फ़ोल्डर से डिफ़ॉल्ट कॉन्फ़िगरेशन फ़ाइल को पढ़ेगा जहां एप्लिकेशन शारीरिक रूप से निवास कर रहा है। वर्चुअल निर्देशिकाओं को web.config के साथ कुछ भी नहीं मिला है। यह वेबसाइट के रूट के रूप में किसी विशेष भौतिक निर्देशिका में मैप करने के लिए वेबसर्वर (आईआईएस) द्वारा उपयोग किया जाता है।

धन्यवाद।

+1

-1। यहां देखें ... http://msdn.microsoft.com/en-us/library/ms178685(v=vs.100).aspx#configuration_inheritance, 'जब सर्वर किसी विशेष वेब संसाधन, एएसपी.नेट के लिए अनुरोध प्राप्त करता है अनुरोधित यूआरएल के लिए आभासी निर्देशिका पथ में स्थित सभी विन्यास फाइलों का उपयोग करके, उस संसाधन के लिए विन्यास रूप से विन्यास सेटिंग्स की गणना करता है। ' –

0

मुझे लगता है कि आपके पास एप्लिकेशन ए, एप्लिकेशन बी, एप्लिकेशन सी और इतने पर है, यह सब ठीक वही हैं, सिवाय इसके कि वे कुछ वेब कॉन्फ़िगरेशन गुणों में परिभाषित कुछ कॉन्फ़िगरेशन गुणों से अलग हैं।

बेशक यह संभव है - परियोजना को वेब अनुप्रयोग के रूप में स्थापित करने का सबसे आसान तरीका है, फिर संकलित करें, फिर अनुप्रयोगों के बीच उस डीएल को साझा करें। आप जीएसी का उपयोग कर सकते हैं जो आप चाहते हैं।

आप आईआईएस में अलग-अलग साइटों को सेट कर सकते हैं जो एक साझा निर्देशिका (या प्रत्येक में वर्चुअल निर्देशिका का उपयोग करें) को इंगित करते हैं जहां सभी तर्क बैठते हैं, लेकिन आप app_code फ़ोल्डर साझा नहीं कर सकते हैं।

संपादित

RichardOD ऊपर सर्वश्रेष्ठ उत्तर है, और मैं पहले कुछ इसी तरह लागू किया है। असल में, मैंने एक कस्टम कॉन्फ़िगरेशन फ़ाइल सेट की है जो web.config द्वारा संदर्भ है (जब मैं इसमें परिवर्तन करता हूं तो ऐप को पुनरारंभ करने के लिए)। यह फ़ाइल होस्ट नाम से पढ़ी जाती है, और इसमें प्रति-होस्ट आधार पर विशिष्ट गुण होते हैं।

मैं बस आईआईएस में होस्ट हेडर जोड़ता हूं, और कस्टम कॉन्फ़िगरेशन फ़ाइल में उस होस्ट के लिए एक प्रविष्टि जोड़ता हूं। किया हुआ।

1

मुझे यकीन है कि मैंने वेबसाइट के प्रत्येक उदाहरण के लिए एक अलग डीबी कनेक्शन स्ट्रिंग रखने के लिए एक बार पहले यह किया था। मेरा अनुमान था कि वेबसाइट के प्रत्येक उदाहरण के लिए एक वर्चुअल निर्देशिका थी जो केवल में एक विशिष्ट वेब सेटिंग्स के साथ एक web.config था और फिर इन वर्चुअल निर्देशिकाओं में से प्रत्येक के अंदर एक ऐप था जो स्रोत कोड का संदर्भ देता था (जिसमें साझा किया गया था web.config)।

इस प्रकार चाल, अगर मुझे सही याद है, तो एक वेबसाइट के लिए, एक वर्चुअल निर्देशिका है जिसमें केवल web.config शामिल है। इसमें मान उस वर्चुअल निर्देशिका के उप-ऐप द्वारा विरासत में प्राप्त होंगे।

+0

पुष्टि करें, कि यह चाल – Pashec

+0

कूल काम करती है। क्या आपने देखा है कि कौन सा web.config प्राथमिकता लेता है? आंतरिक या बाहरी? मुझे लगता है कि यह बाहरी है। –

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