De ODP.NET-stuurprogramma's bestaan in principe uit twee delen. Het .NET-gedeelte en het native OCI-gedeelte. De foutmelding geeft aan dat het .NET-gedeelte werkt, maar het oorspronkelijke gedeelte niet kan laden.
Deze problemen zijn waarschijnlijke oorzaken:
-
Er is een versie die niet overeenkomt tussen het .NET-gedeelte en het native gedeelte. Merk op dat
OraOps10.dll
behoort tot Oracle 10g. Het .NET-gedeelte is dus duidelijk van versie 10 en zoekt een native gedeelte voor versie 10. -
Er kan een mismatch in bitness zijn. Als het .NET-gedeelte in 64-bits modus draait, zoekt het naar de 64-bits native OCI-DLL's. Op een 64-bits systeem kan de taakbeheerder u vertellen of het proces 32- of 64-bits is. 32-bits processen zijn gemarkeerd met
*32
. -
Het register bevat mogelijk niet het juiste pad naar de oorspronkelijke DLL's. ODP.NET haalt de waarde op van
HKEY_LOCAL_MACHINE\Software\Oracle\ODP.NET\2.xxx.x.x\DllPath
om de OCI DLL's te vinden. Merk op dat het register is opgesplitst in een 32- en 64-bits gedeelte. Afhankelijk van het proces dat in het register kijkt, krijgt het verschillende waarden.
Het is het beste als u alle beschikbare informatie aan uw vraag toevoegt. Is het een 64-bits besturingssysteem? Is het een 32- of 64-bits proces? Welke versie van de Oracle-client is geïnstalleerd? In welke map is de Oracle-client geïnstalleerd? Kunt u de juiste registervermeldingen zien?