2009-01-29 10 views
5

मेरे पास एक ऐप है जो .exe फ़ाइल में निर्देशिका के नीचे ओडीएसी 11 के स्थानीय संस्करण का उपयोग करता है। विचार यह है कि हम चाहते हैं कि हमारा ऐप स्थानीय ओडीएसी 11 का उपयोग करे, चाहे उपयोगकर्ता ने अपनी मशीन पर और क्या इंस्टॉल किया हो ।ओरेकल डीबी 10 के साथ मशीन पर ODP.NET 11 xcopy परिनियोजन कार्य क्यों नहीं करता है?

Oracle.DataAccess.dll .exe के समान निर्देशिका में है।

यह ठीक काम करता है जब क्लाइंट मशीन कोई Oracle ग्राहक स्थापित है, लेकिन जब स्थापित Oracle डाटाबेस 10.2.0.something के साथ एक मशीन पर यह शुरू करने से मैं एक त्रुटि मिलती है:

The type initializer for 'Oracle.DataAccess.Client.OracleConnection' threw an exception. 

[Stack Trace] 

The provider is not compatible with the version of Oracle client 
OracleException 
    at Oracle.DataAccess.Client.OracleInit.Initialize() 
    at Oracle.DataAccess.Client.OracleConnection..cctor() 

मुझे लगता है कि अनुमान लगा रहा हूँ रनटाइम बाध्यकारी नीति के साथ इसका कुछ संबंध है, लेकिन Google पर "ओरेकल/ओडीएसी/ओडीपी.नेट रनटाइम बाध्यकारी नीति" की खोज कुछ भी उपयोगी नहीं हुई है।

क्या कोई इस मुद्दे को हल करने का तरीका जानता है?

यदि यह विशिष्ट समस्या नहीं है, तो क्या कोई मुझे इस बात के बारे में एक अवलोकन की ओर इशारा कर सकता है कि मैं क्या करना चाहता हूं: सुनिश्चित करें कि मेरा एप्लिकेशन ओडीएसी 11 का उपयोग करता है चाहे कोई फर्क नहीं पड़ता?

उत्तर

4

इसलिए जब मैं इसे समझता हूं, तो मुद्दा यह था कि Oracle.DataAccess.dll ऐप के समान निर्देशिका में था, लेकिन इसकी निम्न-स्तरीय homies (oci, et al), इसलिए संगतता त्रुटि नहीं मिली।

बाहर कर देता है कि यदि आप और क्या उपयोगकर्ता उसकी मशीन पर स्थापित हो सकता है की 11 xcopy तैनाती परवाह किए बिना ODAC के साथ काम करने के लिए एक आवेदन चाहते हैं, आप 2 काम करने होंगे:

  1. सेट पथ वातावरण चर प्रक्रिया के लिए। (मैं पहले से ही यह कर रहा था।)
  2. प्रक्रिया के लिए ORACLE_HOME पर्यावरण चर सेट करें। (मैं यह नहीं कर रहा था।)

    Environment.SetEnvironmentVariable("PATH", Environment.CurrentDirectory + "\\oracle\\11.1\\odac;" + Environment.CurrentDirectory + "\\oracle\\11.1\\odac\\bin;", EnvironmentVariableTarget.Process); 
    Environment.SetEnvironmentVariable("ORACLE_HOME", Environment.CurrentDirectory + "\\oracle\\11.1\\odac", EnvironmentVariableTarget.Process); 
    

संपादित करें: यह भी ध्यान रखें कि ओरेकल इस त्रुटि सिर्फ पर्यावरण के मुद्दों के लिए, लेकिन यह भी अगर फ़ाइलों में से एक पर याद आ रही है नहीं फेंक देते हैं महत्वपूर्ण है लक्ष्य मशीन मुझे पर्यावरण सेटिंग्स के बावजूद अन्य मशीनों पर यह वही त्रुटि मिली क्योंकि मेरे पास "बिन" नामक निर्देशिकाओं को अनदेखा करने के लिए सबवर्जन सेट था, इसलिए ओराऑप्स डीएलएल को क्लाइंट में कॉपी नहीं किया जा रहा था।

0

यदि आप ऑरैकल क्लाइंट 10.2.0.1 या 10.2.0.2 का उपयोग कर रहे हैं, तो ओरेकल नोट 215255.1 इंगित करता है कि यदि आप पैचसेट 10.2.0.3 लागू करते हैं तो यह समस्या को हल करता है। 10.2.0.3 डेटाबेस पैच (852 एमबी) प्राप्त करें और ग्राहक घर पैच करें। हां, यह पूर्ण डेटाबेस सर्वर पैचसेट है, लेकिन यह क्लाइंट पर भी लागू होता है।

2

आप अपने ओडीपी.NET ड्राइवरों को oci.dll की प्रतिलिपि बनाने के लिए मजबूर करना चाहते हैं जो आपके स्थानीय फ़ोल्डर में है, जो पहले से स्थापित है।

तुम इतनी प्रणाली oci.dll पहले की आपकी प्रतिलिपि में पाता है (जोश Kodroff द्वारा जवाब के रूप में) पथ चर की स्थापना या तो

  • द्वारा इस मजबूर कर सकते हैं

या

  • आप ओडीपी का उपयोग कर सकते हैं।"DllPath" के मान को स्पष्ट रूप से सेट करने के लिए app.config (या web.config) में नेट कॉन्फ़िगरेशन अनुभाग।

जानकारी के लिए, http://ora-00001.blogspot.com/2010/01/odpnet-minimal-non-intrusive-install.html और http://database.in2p3.fr/doc/oracle/Oracle_Database_11_Release_1_(11.1)_Documentation/win.111/e10927/featConfig.htm

4

"Oracle तुरंत क्लाइंट के साथ परिनियोजित ODP.NET" शीर्षक से एक लेख http://alderprogs.blogspot.com/2009/04/deploying-odpnet-with-oracle-instant.html में पाया दिया क्या है कि कैसे एक नीचे छीन xcopy वितरित करने के लिए सबसे अच्छा विवरण के बारे में मेरे लिए था देखना अपने आवेदन के साथ तैनाती टाइप करें। समर्थन के लिए केवल 5 ओरेकल डीएलएल की आवश्यकता है।

ने कहा कि ओबीवन केनोबी और जोश कोडरॉफ़ के उत्तरों ने महत्वपूर्ण अनुभव प्रदान किया है जो मेरे अनुभव से मेल खाता है।

उसमें जोड़ें: http://www.brothersincode.com/post/Oracle-ODPnet-xcopy-deployment-for-aspnet.aspx

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