sql >> データベース >  >> RDS >> Oracle

ODP.NETマネージド-要求された.NetFrameworkデータプロバイダーが見つかりません

    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" />
    

    これらのエントリを追加した後、すべてがうまくいきました。



    1. Psycopg2画像が見つかりません

    2. データベースを開始する前に尋ねる質問

    3. SparkDataframesUPSERTからPostgresテーブルへ

    4. SQLiteOpenHelperを使用してAndroidでsqliteデータベースをアタッチする