EntityFramework5を使用してASP.NETMVC5アプリケーションを64ビットバージョンのODACクライアントコンポーネントがインストールされている64ビットサーバーに展開すると、このエラーが発生していました。
b_levittのアドバイスに従い、ファクトリを使用せずに接続を手動で開くことができることを確認したため、ODACがインストールされて機能しましたが、ファクトリメソッドはアセンブリを見つけることができませんでした。
髪を引っ張った後、問題は32ビットバージョンの.NETFrameworkのmachine.configファイルにあることがわかりました。オラクルプロバイダーのエントリが含まれていなかったため、このファイルに次のエントリを手動で追加しました。
C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Config \ machine.config
の下
<configuration>
<configSections>
次の2つのセクション全体があることを確認してください。
<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" />
正確なエントリは、framework64フォルダの下のmachine.configファイルから取得できます。
次に、
の下 <system.data>
<DbProviderFactories>
次の2つのファクトリ名があることを確認してください。
<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" />
これらのエントリを追加した後、すべてがうまくいきました。