sql >> Databasteknik >  >> RDS >> Oracle

ODP.NET Managed - Det går inte att hitta efterfrågad .Net Framework-dataleverantör

Jag fick det här felet när jag distribuerade en ASP.NET MVC 5-applikation med EntityFramework 5 till vår 64-bitarsserver där 64-bitarsversionen av ODAC-klientkomponenterna installerades.

Jag följde b_levitts råd och bekräftade att anslutningen kunde öppnas manuellt utan att använda fabrikerna, så ODAC var installerad och fungerade, men fabriksmetoderna kunde inte lokalisera sammansättningarna.

Efter att ha dragit i håret under en okänd tid kom jag på att problemet låg i filen machine.config för 32-bitarsversionen av .NET-ramverket. Det inkluderade inte posterna för oracle-leverantörerna, så jag la manuellt till följande poster i den här filen:

C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\machine.config

Under

<configuration>
  <configSections>

se till att du har följande två avsnittshelheter:

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

Du kan hämta de exakta posterna från din machine.config-fil under mappen framework64.

Därefter under

  <system.data>
    <DbProviderFactories>

se till att du har följande två fabriksnamn:

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

Efter att ha lagt till dessa poster fungerade allt för mig.



  1. Hur man importerar en PostgreSQL-databas med phpPgAdmin

  2. Använder Barman för PostgreSQL Disaster Recovery

  3. TABLESAMPLE returnerar fel antal rader?

  4. Implementering av fel- och transaktionshantering i SQL Server