ODP.NET-drivrutinerna består i princip av två delar. .NET-delen och den ursprungliga OCI-delen. Felmeddelandet indikerar att .NET-delen fungerar men inte kan ladda den inbyggda delen.
Dessa problem är troliga orsaker:
-
Det finns en versionsfel mellan .NET-delen och den ursprungliga delen. Observera att
OraOps10.dll
tillhör Oracle 10g. Så .NET-delen är uppenbarligen av version 10, och den letar efter en inbyggd del för version 10. -
Det kan finnas en bitness mismatch. Om .NET-delen körs i 64-bitarsläge, kommer den att leta efter 64-bitars inbyggda OCI DLL-filer. På ett 64-bitarssystem kan aktivitetshanteraren tala om för dig om processen är 32- eller 64-bitars. 32-bitars processer är markerade med
*32
. -
Registret kanske inte innehåller rätt sökväg till de ursprungliga DLL-filerna. ODP.NET kommer att hämta värdet för
HKEY_LOCAL_MACHINE\Software\Oracle\ODP.NET\2.xxx.x.x\DllPath
för att hitta OCI DLL:erna. Observera att registret är uppdelat i en 32- och 64-bitarsdel. Beroende på processen som tittar in i registret kommer det att få olika värden.
Det är bäst om du lägger till all tillgänglig information till din fråga. Är det ett 64-bitars operativsystem? Är det en 32 eller 64 bitars process? Vilken version av Oracle-klienten installerades? Vilken katalog installerades Oracle-klienten? Kan du se de korrekta registerposterna?