2013-03-08 14 views
11

मैं सी # के साथ एएसपी.NET अनुप्रयोग बना रहा हूं और मैं ऑरैक डेटाबेस से कनेक्ट करना चाहता हूं।
मैंने अपने 64 बिट माइक्रोसॉफ्ट विंडो सर्वर 2008 मशीन पर अपने आवेदन में Oracle.DataAccess का संदर्भ जोड़ा है। मैं अपने मशीन पर ODAC (Oracle डेटा एक्सेस घटक) स्थापित और Oracle.DataAccess.dll भी इस मार्गफ़ाइल या असेंबली लोड नहीं कर सका 'Oracle.DataAccess त्रुटि

C:\Windows\Microsoft.NET\assembly\GAC_64\Oracle.DataAccess

पर मौजूद है, लेकिन मैं निम्नलिखित त्रुटि का सामना करना जब मैं कनेक्ट करने के लिए कोशिश कर रहा हूँ:

Could not load file or assembly 'Oracle.DataAccess, Version=4.112.3.0, Culture=neutral, PublicKeyToken=89b483f429c47342' or one of its dependencies. The system cannot find the file specified.

+1

क्या आपने 32 बिट संस्करण स्थापित करने का प्रयास किया था? –

+0

नहीं, मैंने 64 बिट संस्करण –

+0

@FelipeOriani स्थापित किया है मुझे क्या करना चाहिए? वास्तव में मैं 64 बिट मशीन का उपयोग कर रहा हूँ। –

उत्तर

5

जहाँ तक मुझे पता है, Oracle.DataAccess असेंबली केवल 32 बिट्स के साथ काम करता है, मुझे 64 बिट्स के साथ इस प्रकार की समस्या भी है और यह वास्तव में काम नहीं करता है। मेरा समाधान जीएसी से 64 बिट हटा दिया गया था और जीएसी पर 32 बिट्स स्थापित किया गया था। मैं अपने आवेदन में बिन फ़ोल्डर में किसी भी .dll फ़ाइल को भी हटा देता हूं, जीएसी पर असेंबली पाता हूं।

आपकी मशीन और परिचालन प्रणाली 64 बिट्स होने पर कोई समस्या नहीं है, 32 बिट संस्करण ठीक काम करेगा।

अद्यतन

मैं सुझाव है कि आप Official Oracle ODP.NET, Managed Driver पर एक नज़र डालें, कि Oracle.DataAccess तुलना में एक बेहतर संस्करण है। यह Managed Driver मशीन पर Oracle Client की आवश्यकता नहीं है, और आपको केवल connection string के डेटासोर्स फ़ील्ड पर टीएनएस प्रदान करने की आवश्यकता है और यह 32 और 64 बिट्स के लिए ठीक काम करता है।

+0

x64 Oracle.DataAccess असेंबली भी काम करती है क्योंकि मैंने केवल x64 का उपयोग करके दूसरे पर उपयोग किया है और यह ठीक काम कर रहा है। मैं पहचान नहीं सकता कि यह मेरे सिस्टम में क्यों आ रहा है। @felipe Oriani मेरी समस्या को हल करने के लिए आपको बहुत धन्यवाद देता है। –

+0

ओरेकल। डेटाएप असेंबली में 32 बिट और 64 बिट संस्करण हैं और वे दोनों बिना किसी समस्या के काम करते हैं। मैंने दोनों संस्करणों का इस्तेमाल किया। –

+0

यह अभी भी मेरी मशीन पर दिखाई देता है। मेरी मशीन 64 बिट भी है –

3

आपको ओरेकल के x64 और x86 दोनों संस्करणों को स्थापित करने की आवश्यकता है, क्योंकि कुछ (मुझे लगता है कि यह विजुअल स्टूडियो था) डीबगिंग करते समय x86 संस्करण का उपयोग करता है।

+0

मैंने आईआईएस पर प्रकाशित किया है। –

1

मूलतः एक ही त्रुटि

लापता मुझ से पिछले पोस्ट और अन्य जवाब भागीदार के अनुसार ODP.NET स्थापना घटकों।

आप अभी तक जीएसी की जांच करते हैं?

आप Oracle.xxx फ़ोल्डर नहीं देखते हैं, तो

आप किसी भी प्रगति नहीं कर रहे हैं।

एप्लिकेशन/BIN फ़ोल्डर में Oracle.DataAccess.dll का सही संस्करण और बिट डालें और स्थानीय संदर्भ बनाएं। यह कई समस्याओं को हल करता है।

+1

मुझे Oracle.DataAccess.dll के सही संस्करण के बारे में निश्चित है। और मैंने संदर्भ स्थानीय डालने की कोशिश की लेकिन इसे त्रुटि के बाद सामना करना पड़ा। फ़ाइल या असेंबली Oracle.DataAccess या इसकी निर्भरताओं में से एक लोड नहीं हो सका। एक गलत प्रारूप के साथ एक प्रोग्राम लोड करने के लिए एक प्रयास किया गया था। –

1

अपनी वेबसाइट चलाने के लिए, आपको आईआईएस का उपयोग करना चाहिए क्योंकि दृश्य स्टूडियो के विकास सर्वर केवल 32 बिट मोड में चलते हैं।
आईआईएस एप्लिकेशन पूल में, 64 बिट में चलाने के लिए अपना एप्लिकेशन सेट करें। (सेटिंग उन्नत सेटिंग्स में है)

1

वीएस -2010 में, मैंने प्लेटफ़ॉर्म लक्ष्य को x64 में बदल दिया और यह त्रुटि संदेश गायब हो गया।

0

इस त्रुटि को हल करने के लिए, मैंने 32 बिट अनुप्रयोगों को अनुमति देने के लिए आईआईएस में अपना ऐप पूल सेट किया। आईआईएस प्रबंधक खोलें, ऐप पूल पर राइट क्लिक करें, और उन्नत सेटिंग्स का चयन करें -> "32-बिट एप्लिकेशन सक्षम करें" को सही पर सेट करें। यह मेरे लिए ठीक काम कर रहा है।

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