2010-03-23 6 views
5

कुछ महीने पहले, XCOPY का उपयोग कर सर्वर में ओडीएसी 11.106.21 स्थापित एक सहयोगी और फिर उन्होंने कई अनुप्रयोग विकसित किए जो इस क्लाइंट का उपयोग बिना समस्या के (परीक्षण और उत्पादन विंडोज सर्वर)।एक ही सर्वर में दो ओडीपी.NET (ओडीएसी) संस्करण होने के बाद

पिछले हफ्ते, मैंने ओडीएसी 11.1.07.20 के तहत एक आवेदन विकसित किया। जब मैंने उन्हें एक अलग फ़ोल्डर में एक्ससीओपीवाई का उपयोग करके इन नए ओडीएसी संस्करण को स्थापित करने के लिए कहा और फिर मेरा आवेदन टेस्ट सर्वर में शामिल किया, तो उसने मुझे जवाब दिया कि मुझे ओडीएसी 11.106.21 का उपयोग करना चाहिए क्योंकि उसे अपने अनुप्रयोगों में परेशानी हो सकती है।

तो मैं जानना चाहूंगा:

1) यदि यह एक सर्वर में दो अलग अलग ODAC संस्करणों के लिए वास्तव में संभव है।

2) यदि उत्तर सकारात्मक है, तो मैं अपने सहयोगी को दृढ़ता से कैसे सुनिश्चित कर सकता हूं कि उसे अपने आवेदनों में परेशानी नहीं होगी?

3) यदि उत्तर सकारात्मक है, तो सर्वर में किसी प्रकार की कॉन्फ़िगरेशन करना आवश्यक है?

धन्यवाद !!

उत्तर

9

आपके पास एक ही मशीन पर ओडीएसी के कई संस्करण हो सकते हैं, लेकिन प्रत्येक एप्लिकेशन द्वारा किस संस्करण का उपयोग किया जाएगा इसके संबंध में कई चीजें जानी चाहिए। यह वास्तव में सभी असेंबली पर लागू होता है।

  • दृश्य स्टूडियो में, यदि आप विशिष्ट संस्करण = Oracle.DataAccess.dll पर यह सच है निर्धारित करते हैं, तो उस आवेदन किसी अन्य संस्करण का उपयोग नहीं होगा और संस्करण इसके खिलाफ बनाया गया था खोजने के लिए सक्षम होना चाहिए।
  • चाहे आप अपने आवेदन के साथ डीएलएल तैनात करते हैं या उम्मीद करते हैं कि यह किसी निश्चित स्थान पर या जीएसी में हो।
  • निर्भर डीएलएल खोजने के लिए एक विशिष्ट खोज आदेश है, और यह काफी शामिल है, इसलिए this MSDN topic पढ़ें।

    :

संक्षिप्त उत्तर वहाँ सुनिश्चित करें कि आपके आवेदन करने के लिए (यह ज्यादातर मामलों में लागू होता है जहां सब कुछ डिफ़ॉल्ट है) आप यह चाहते Oracle.DataAccess.dll का सही संस्करण का उपयोग करता बनाने के लिए दो आसान तरीके हैं कि है

  1. सही संस्करण को सही पर सेट करें;
  2. अपने आवेदन के साथ डीएलएल को तैनात करें और इसे एप्लिकेशन निर्देशिका में रखें, या सुनिश्चित करें कि डीएलएल जीएसी में है।

अपने विशिष्ट मामले में, अपने सहयोगी एक वैध चिंता का विषय हो सकता है: अपने आवेदन पत्र है जो वर्तमान में स्थापित कर रहे हैं GAC से Oracle.DataAccess.dll हो रही है, और वह यह सच है के लिए विशिष्ट संस्करण सेट नहीं किया, तो जब हैं आप नया ओडीएसी स्थापित करते हैं, उसके अनुप्रयोग इसका उपयोग शुरू कर देंगे (मुझे लगता है कि नया ओरेकल.डाटाएप.एलएल भी जीएसी में स्थापित किया जाएगा),

+1

मुझे "सर्वर" द्वारा कल्पना की गई है जिसका अर्थ है कि आईआईएस के साथ एक विंडोज सर्वर स्थापित है ताकि ASP.NET अनुप्रयोग ओरेकल तक पहुंचने के लिए क्लाइंट लाइब्रेरी का उपयोग कर सकें। –

+0

@IgbyLargeman: अच्छा। एक और सवाल। 64-बिट क्लाइंट, दोनों प्लेटफार्मों को तैनात किया गया, संस्करण 4.112.2 जीएसी में। नए ऐप्स ईएफ सुविधाओं के लिए 4.112.3 का उपयोग करते हैं, इसलिए विचार यह था कि पुरानी जीएसी प्रतिलिपि को ट्रम्प करने के लिए इसे 'bin' पर रखा जाए। विजुअल स्टूडियो केवल स्थानीय 32-बिट की प्रतिलिपि बनाता है। अगला विचार 4.112.3 के 64-बिट संस्करण के साथ फ़ाइल को ओवरराइट करना था। यह मुझे वही त्रुटि देता है जैसे लाइब्रेरी बिन में नहीं थी, जैसे कि यह अभी भी पुरानी जीएसी 64 लाइब्रेरी का उपयोग कर रहा है। कोई विवरण या सुझाव? क्या मेरे लिए सभी 4 पुस्तकालयों को तैनात करना संभव है (4.112.2 32/64, और 4.112.3 32/64)? धन्यवाद –

4

यहां समस्या .NET dlls लेकिन अप्रबंधित डीएलएस नहीं है।

मैं एक सर्वर पर दो एएसपी.NET अनुप्रयोगों को काम करने की कोशिश कर रहा हूं। एक ओडीपी.NET 9x का उपयोग कर पुराना है और नवीनतम ओडीपी.NET का उपयोग कर नया है। मैंने xcopy का उपयोग करके नवीनतम ओडीपी.NET तैनात किया और नए ओडीपी के लिए पथ पर्यावरण चर के पथ जोड़ दिए। अब पुराना आवेदन काम नहीं करता है (शायद नए डीएलएस का उपयोग करने की कोशिश करता है)। जब मैं पथ चर से पथ हटा देता हूं तो नया ऐप काम नहीं करता है। मुझे ओरेकल पृष्ठों पर आईआईएस को एक सर्वर पर काम करने का तरीका मिला लेकिन यह काम नहीं किया। हो सकता है क्योंकि मैंने नवीनतम ओडीपी.NET इंस्टॉल नहीं किया है, लेकिन बस इसे एक्सकॉप्ड किया है।मुझे इसे आजमाना होगा।

क्या ओरेकल के बारे में कहते हैं: लिंक: http://www.oracle.com/technology/tech/windows/odpnet/faq.html कई ओरेकल अनुप्रयोग माइक्रोसॉफ़्ट इंटरनेट इनफॉर्मेशन सर्विसेज (आईआईएस) पर चलते हैं। पहले, आईआईएस एक ही प्रक्रिया अनुप्रयोग था जिसमें एक ही आईआईएस इंस्टेंस का उपयोग करके प्रत्येक चल रहे वेब एप्लिकेशन को एक अलग सिस्टम पथ असाइन करने की क्षमता थी। विंडोज सर्वर 2003 पर आईआईएस 6 के साथ, आईआईएस एक ही उदाहरण के लिए कई प्रक्रियाओं का समर्थन करता है। चूंकि प्रत्येक एप्लिकेशन की अपनी आईआईएस प्रक्रिया होती है, इसलिए प्रत्येक वेब एप्लिकेशन को अपने ओरेकल होम के साथ एक अलग सिस्टम पथ निर्देशिका असाइन की जा सकती है।

माइक्रोसॉफ्ट दस्तावेज आईआईएस कार्यकर्ता प्रक्रिया अलगाव और आवेदन पूल पर जानकारी प्रदान करता है।

ही आईआईएस सर्वर पर समवर्ती चलती कई सक्रिय ओरेकल होम्स सेट करने के लिए: 1) विंडोज सर्वर 2003 2) पर कार्यकर्ता प्रक्रिया आइसोलेशन मोड में चलाने के आईआईएस 6 एक अनुप्रयोग पूल और करने के लिए ओरेकल क्लाइंट का एक संस्करण तैनात दूसरे संस्करण पूल में दूसरा संस्करण। उदाहरण के लिए, आपके पास एक एप्लिकेशन पूल द्वारा ओरेकल क्लाइंट 9.2.0.2 और ODP.NET 9.2.0.2 का उपयोग किया जा सकता है। और ओरेकल क्लाइंट 9.2.0.4 और ओडीपी.NET 9.2.0.4 को किसी अन्य एप्लिकेशन पूल द्वारा नियोजित किया जा सकता है। आप एक ही आवेदन पूल में दो सक्रिय ओरेकल होम का उपयोग करने में सक्षम नहीं होंगे। प्रत्येक सक्रिय ओरेकल होम एक अलग पूल में होना चाहिए। 3) उपयुक्त ओरेकल होम क्लाइंट निर्देशिका का उपयोग करने के लिए प्रत्येक कार्यकर्ता प्रक्रिया के लिए DLL निर्देशिका सेट करें। ऐसा करने के लिए, प्रत्येक एएसपी.NET एप्लिकेशन के भीतर, किसी भी ओरेकल डीएलएल को कॉल करने से पहले एप्लिकेशन लाइफसाइक्ल में सेटडेल डायरेक्टरी (directory_name) को कॉल करें। SetDllDirectory इनपुट चर ODP.NET संस्करण का ओरेकल होम बिन निर्देशिका है। नोट: SetDllDirectory एक अप्रबंधित कॉल है।