Tato chyba se mi zobrazila při nasazování aplikace ASP.NET MVC 5 pomocí EntityFramework 5 na náš 64bitový server, na kterém byla nainstalována 64bitová verze součástí klienta ODAC.
Sledoval jsem b_levittovu radu a potvrdil jsem, že připojení lze otevřít ručně bez použití továren, takže ODAC byl nainstalován a fungoval, ale tovární metody nedokázaly najít sestavy.
Po nezveřejněném čase jsem se tahal za vlasy a zjistil jsem, že problém je v souboru machine.config pro 32bitovou verzi frameworku .NET. Nezahrnoval položky pro poskytovatele oracle, takže jsem do tohoto souboru ručně přidal následující položky:
C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\machine.config
Pod
<configuration>
<configSections>
ujistěte se, že máte následující dva celky:
<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" />
Přesné položky můžete získat ze souboru machine.config ve složce framework64.
Dále pod
<system.data>
<DbProviderFactories>
ujistěte se, že máte následující dva tovární názvy:
<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" />
Po přidání těchto záznamů mi vše fungovalo.