ODP.NET драйверите основно се състоят от две части. Частта .NET и собствената OCI част. Съобщението за грешка показва, че .NET частта работи, но не успява да зареди собствената част.
Тези проблеми са вероятни причини:
-
Има несъответствие на версиите между частта .NET и основната част. Имайте предвид, че
OraOps10.dll
принадлежи на Oracle 10g. Така че .NET частта очевидно е от версия 10 и търси собствена част за версия 10. -
Може да има несъответствие в битовете. Ако .NET частта работи в 64-битов режим, тя ще търси 64-битовите собствени OCI DLL. При 64-битова система диспечерът на задачите може да ви каже дали процесът е 32-битов или 64-битов. 32-битовите процеси са маркирани с
*32
. -
Регистърът може да не съдържа правилния път към собствените DLL файлове. ODP.NET ще извлече стойността на
HKEY_LOCAL_MACHINE\Software\Oracle\ODP.NET\2.xxx.x.x\DllPath
за да намерите OCI DLL. Имайте предвид, че регистърът е разделен на 32 и 64 битова част. В зависимост от процеса, който търси в системния регистър, той ще получи различни стойности.
Най-добре е да добавите цялата налична информация към въпроса си. 64 битова операционна система ли е? Това 32 или 64 битов процес? Коя версия на клиента Oracle е инсталирана? В коя директория е инсталиран клиентът на Oracle? Можете ли да видите правилните записи в системния регистър?