Microsoft MVP성태의 닷넷 이야기
글쓴 사람
정성태 (techsharer at outlook.com)
홈페이지
첨부 파일
 

ODP.NET 오류 - The provider is not compatible with the version of Oracle client

낯설은 것도 있겠지만, 오라클 쪽은 유독 오류 원인을 찾기가 더 힘든 것 같은 느낌입니다.

이번에도 테스트 환경을 복원하는 중에 발생한 오류인데, ODP.NET의 연결 개체를 사용하는 과정에 다음과 같은 예외가 발생했습니다.

odpnet_ver_compat_error_1.png

The provider is not compatible with the version of Oracle client 
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: Oracle.DataAccess.Client.OracleException: The provider is not compatible with the version of Oracle client

Source Error: 

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.  

Stack Trace: 

[OracleException (0x80004005): The provider is not compatible with the version of Oracle client]
   Oracle.DataAccess.Client.OracleInit.Initialize() +578
   Oracle.DataAccess.Client.OracleConnection..cctor() +2156

[TypeInitializationException: The type initializer for 'Oracle.DataAccess.Client.OracleConnection' threw an exception.]
   System.Runtime.Remoting.RemotingServices.AllocateUninitializedObject(RuntimeType objectType) +0
   System.Runtime.Remoting.RemotingServices.AllocateUninitializedObject(Type objectType) +47
   System.Runtime.Remoting.Activation.ActivationServices.CreateInstance(Type serverType) +59
   System.Runtime.Remoting.Activation.ActivationServices.IsCurrentContextOK(Type serverType, Object[] props, Boolean bNewObj) +56
   WebSiteTest.odpnet20test.Page_Load(Object sender, EventArgs e) in d:\...\WebSiteTest\odpnet20test.aspx.cs:304
   System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +13
   System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +43
   System.Web.UI.Control.OnLoad(EventArgs e) +98
   System.Web.UI.Control.LoadRecursive() +71
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +4297

오류 원인을 찾는 것이 만만치 않았는데요. 다행히 다음의 글에서 도움을 받을 수 있었습니다.

ODP.NET: The provider is not compatible with the version of Oracle client 
; http://oradim.blogspot.com/2009/09/odpnet-provider-is-not-compatible-with.html

위의 글에서 제시된 "Cause 1"이 사실상 주된 원인일 텐데, 제 경우에는 "Cause 2: OraOpsXX.dll is missing"이 원인이었습니다.

사연은 대충 이렀습니다. 예전에 제가 ODP.NET을 설치하지 않고도 사용할 수 있는 방법을 설명드렸었는데요.

ODP.NET 설치 없이 .NET 클라이언트 프로그램 배포하는 방법
; https://www.sysnet.pe.kr/2/0/822

.NET 응용 프로그램에서 64비트 Oracle Data Access Components 사용
; https://www.sysnet.pe.kr/2/0/825

당시에 32비트 쪽은 위와 같이 xcopy 배포 버전을 사용해서 해결했고, 64비트 쪽은 약간의 부가 작업을 거쳤는데 그것을 해주지 않았기 때문에 발생한 문제였습니다. (위의 환경을 구성했던 때에는 64비트 ODP.NET은 xcopy 배포 버전이 없었습니다.)

그런데, 최근 ODP.NET 배포 사이트를 가보니 64비트 역시 Xcopy 버전을 배포해 주고 있었는데요.

64-bit ODAC 11.2 Release 4 (11.2.0.3.0) Xcopy for Windows x64
; http://www.oracle.com/technetwork/database/windows/downloads/index-090165.html

그래서 위의 버전을 다운로드해 이참에 테스트 코드도 업데이트하는 것으로 해결했습니다. (테스트 환경 망가진 이후로... 여러 가지로 시행착오를 겪는군요. ^^)




[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]







[최초 등록일: ]
[최종 수정일: 7/8/2021]

Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
by SeongTae Jeong, mailto:techsharer at outlook.com

비밀번호

댓글 작성자
 




... 76  77  78  [79]  80  81  82  83  84  85  86  87  88  89  90  ...
NoWriterDateCnt.TitleFile(s)
12053정성태11/15/201922468Windows: 166. 윈도우 10 - 명령행 창(cmd.exe) 속성에 (DotumChe, GulimChe, GungsuhChe 등의) 한글 폰트가 없는 경우
12052정성태11/15/201921322오류 유형: 578. Azure - 일정(schedule)에 등록한 runbook이 1년 후 실행이 안 되는 문제(Reason - The key used is expired.)
12051정성태11/14/201927245개발 환경 구성: 462. 시작하자마자 비정상 종료하는 프로세스의 메모리 덤프 - procdump [1]
12050정성태11/14/201924661Windows: 165. AcLayers의 API 후킹과 FaultTolerantHeap
12049정성태11/13/201925227.NET Framework: 868. (닷넷 프로세스를 대상으로) 디버거 방식이 아닌 CLR Profiler를 이용해 procdump.exe 기능 구현
12048정성태11/12/201924322Windows: 164. GUID 이름의 볼륨에 해당하는 파티션을 찾는 방법
12047정성태11/12/201926681Windows: 163. 안전하게 eject시킨 USB 장치를 물리적인 재연결 없이 다시 인식시키는 방법
12046정성태10/29/201920532오류 유형: 577. windbg - The call to LoadLibrary(...\sos.dll) failed, Win32 error 0n193
12045정성태10/27/201921948오류 유형: 576. mstest.exe 실행 시 "Visual Studio Enterprise is required to execute the test." 오류 - 두 번째 이야기
12044정성태10/27/201920239오류 유형: 575. mstest.exe - System.Resources.MissingSatelliteAssemblyException: The satellite assembly named "Microsoft.VisualStudio.ProductKeyDialog.resources.dll, ..."
12043정성태10/27/201922812오류 유형: 574. Windows 10 설치 시 오류 - 0xC1900101 - 0x4001E
12042정성태10/26/201920798오류 유형: 573. OneDrive 하위에 위치한 Documents, Desktop 폴더에 대한 권한 변경 시 "Unable to display current owner"
12041정성태10/23/201923363오류 유형: 572. mstest.exe - The load test results database could not be opened.
12040정성태10/23/201924213오류 유형: 571. Unhandled Exception: System.Net.Mail.SmtpException: Transaction failed. The server response was: 5.2.0 STOREDRV.Submission.Exception:SendAsDeniedException.MapiExceptionSendAsDenied
12039정성태10/22/201919910스크립트: 16. cmd.exe의 for 문에서는 ERRORLEVEL이 설정되지 않는 문제
12038정성태10/17/201921525오류 유형: 570. SQL Server 2019 RC1 - SQL Client Connectivity SDK 설치 오류
12037정성태10/15/201929126.NET Framework: 867. C# - Encoding.Default 값을 바꿀 수 있을까요?파일 다운로드1
12036정성태10/14/201931055.NET Framework: 866. C# - 고성능이 필요한 환경에서 GC가 발생하지 않는 네이티브 힙 사용파일 다운로드1
12035정성태10/13/201922798개발 환경 구성: 461. C# 8.0의 #nulable 관련 특성을 .NET Framework 프로젝트에서 사용하는 방법 [2]파일 다운로드1
12034정성태10/12/201921903개발 환경 구성: 460. .NET Core 환경에서 (프로젝트가 아닌) C# 코드 파일을 입력으로 컴파일하는 방법 [1]
12033정성태10/11/201926894개발 환경 구성: 459. .NET Framework 프로젝트에서 C# 8.0/9.0 컴파일러를 사용하는 방법
12032정성태10/8/201922047.NET Framework: 865. .NET Core 2.2/3.0 웹 프로젝트를 IIS에서 호스팅(Inproc, out-of-proc)하는 방법 - AspNetCoreModuleV2 소개
12031정성태10/7/201921189오류 유형: 569. Azure Site Extension 업그레이드 시 "System.IO.IOException: There is not enough space on the disk" 예외 발생
12030정성태10/5/201928117.NET Framework: 864. .NET Conf 2019 Korea - "닷넷 17년의 변화 정리 및 닷넷 코어 3.0" 발표 자료 [1]파일 다운로드1
12029정성태9/27/201927537제니퍼 .NET: 29. Jennifersoft provides a trial promotion on its APM solution such as JENNIFER, PHP, and .NET in 2019 and shares the examples of their application.
12028정성태9/26/201924388.NET Framework: 863. C# - Thread.Suspend 호출 시 응용 프로그램 hang 현상을 해결하기 위한 시도파일 다운로드1
... 76  77  78  [79]  80  81  82  83  84  85  86  87  88  89  90  ...