Saya mendapatkan kesalahan ini ketika menggunakan aplikasi ASP.NET MVC 5 menggunakan EntityFramework 5 ke server 64-bit kami di mana versi 64-bit komponen klien ODAC diinstal.
Saya mengikuti saran b_levitt dan memastikan bahwa koneksi dapat dibuka secara manual tanpa menggunakan pabrik, sehingga ODAC dipasang dan berfungsi, tetapi metode pabrik tidak dapat menemukan rakitan.
Setelah menarik rambut saya untuk waktu yang tidak diungkapkan, saya menemukan bahwa masalahnya ada pada file machine.config untuk versi 32-bit dari kerangka .NET. Itu tidak termasuk entri untuk penyedia oracle, jadi saya menambahkan entri berikut secara manual ke file ini:
C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\machine.config
Di bawah
<configuration>
<configSections>
pastikan Anda memiliki dua bagian berikut secara keseluruhan:
<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" />
Anda bisa mendapatkan entri yang tepat dari file machine.config Anda di bawah folder framework64.
Selanjutnya, di bawah
<system.data>
<DbProviderFactories>
pastikan Anda memiliki dua nama pabrik berikut:
<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" />
Setelah menambahkan entri ini, semuanya bekerja untuk saya.