sql >> Database >  >> RDS >> Oracle

ODP.NET beheerd - Kan de gevraagde .Net Framework-gegevensprovider niet vinden

Ik kreeg deze fout bij het implementeren van een ASP.NET MVC 5-toepassing met EntityFramework 5 op onze 64-bits server waarop de 64-bits versie van de ODAC-clientcomponenten was geïnstalleerd.

Ik volgde het advies van b_levitt op en bevestigde dat de verbinding handmatig kon worden geopend zonder de fabrieken te gebruiken, dus de ODAC was geïnstalleerd en werkte, maar de fabrieksmethoden konden de assemblages niet vinden.

Nadat ik een niet nader genoemde tijd aan mijn haren had getrokken, kwam ik erachter dat het probleem zat in het machine.config-bestand voor de 32-bits versie van het .NET-framework. Het bevatte niet de vermeldingen voor de orakelproviders, dus ik heb handmatig de volgende vermeldingen aan dit bestand toegevoegd:

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

Onder

<configuration>
  <configSections>

zorg ervoor dat je de volgende twee secties hebt:

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

U kunt de exacte gegevens ophalen uit uw machine.config-bestand in de map framework64.

Volgende, onder

  <system.data>
    <DbProviderFactories>

zorg ervoor dat u de volgende twee fabrieksnamen heeft:

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

Na het toevoegen van deze items werkte alles voor mij.



  1. Wanneer gebruik je SELECT ... VOOR UPDATE?

  2. Ontvang de huidige lokale tijd van elk land in PL/SQL

  3. Ik wil de CASE-instructie gebruiken om enkele records in SQL Server 2005 bij te werken

  4. PostgreSQL 12-prestaties bewaken met OmniDB - deel 2