मेरे 64-बिट सर्वर पर EntityFramework 5 का उपयोग करते हुए ASP.NET MVC 5 एप्लिकेशन को तैनात करते समय मुझे यह त्रुटि मिल रही थी, जिस पर ODAC क्लाइंट घटकों का 64-बिट संस्करण स्थापित किया गया था।
मैंने b_levitt की सलाह का पालन किया और पुष्टि की कि कनेक्शन कारखानों का उपयोग किए बिना मैन्युअल रूप से खोला जा सकता है, इसलिए ODAC स्थापित और काम कर रहा था, लेकिन कारखाने के तरीके असेंबली का पता लगाने में असमर्थ थे।
एक अज्ञात समय के लिए अपने बालों को खींचने के बाद, मुझे पता चला कि समस्या .NET ढांचे के 32-बिट संस्करण के लिए machine.config फ़ाइल के साथ थी। इसमें ऑरैकल प्रदाताओं के लिए प्रविष्टियां शामिल नहीं थीं, इसलिए मैंने मैन्युअल रूप से इस फ़ाइल में निम्नलिखित प्रविष्टियां जोड़ दीं:
C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\ Machine.config
के अंतर्गत
<configuration>
<configSections>
सुनिश्चित करें कि आपके पास निम्नलिखित दो खंड पूरे हैं:
<section name="oracle.manageddataaccess.client" type="OracleInternal.Common.ODPMSectionHandler, Oracle.ManagedDataAccess, Version=4.121.1.0, Culture=neutral, PublicKeyToken=89b483f429c47342" />
<section name="oracle.dataaccess.client" type="System.Data.Common.DbProviderConfigurationHandler, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
आप अपनी मशीन से सटीक प्रविष्टियां प्राप्त कर सकते हैं। फ्रेमवर्क 64 फ़ोल्डर के तहत कॉन्फ़िगरेशन फ़ाइल।
अगला,
. के अंतर्गत <system.data>
<DbProviderFactories>
सुनिश्चित करें कि आपके पास निम्नलिखित दो फ़ैक्टरी नाम हैं:
<add name="ODP.NET, Managed Driver" invariant="Oracle.ManagedDataAccess.Client" description="Oracle Data Provider for .NET, Managed Driver" type="Oracle.ManagedDataAccess.Client.OracleClientFactory, Oracle.ManagedDataAccess, Version=4.121.1.0, Culture=neutral, PublicKeyToken=89b483f429c47342" />
<add name="ODP.NET, Unmanaged Driver" invariant="Oracle.DataAccess.Client" description="Oracle Data Provider for .NET, Unmanaged Driver" type="Oracle.DataAccess.Client.OracleClientFactory, Oracle.DataAccess, Version=4.121.1.0, Culture=neutral, PublicKeyToken=89b483f429c47342" />
इन प्रविष्टियों को जोड़ने के बाद, सब कुछ मेरे लिए काम कर रहा था।