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

비밀번호

댓글 작성자
 




... 61  62  63  64  65  66  67  68  69  70  71  72  73  [74]  75  ...
NoWriterDateCnt.TitleFile(s)
12177정성태3/9/202023650개발 환경 구성: 479. docker - MySQL 컨테이너 실행
12176정성태3/9/202023169개발 환경 구성: 478. 파일의 (sha256 등의) 해시 값(checksum) 확인하는 방법
12175정성태3/8/202023196개발 환경 구성: 477. "Docker Desktop for Windows"의 "Linux Container" 모드를 위한 tcp 바인딩 추가
12174정성태3/7/202021301개발 환경 구성: 476. DockerDesktopVM의 파일 시스템 접근 [3]
12173정성태3/7/202023810개발 환경 구성: 475. docker - SQL Server 2019 컨테이너 실행 [1]
12172정성태3/7/202028215개발 환경 구성: 474. docker - container에서 root 권한 명령어 실행(sudo)
12171정성태3/6/202022575VS.NET IDE: 143. Visual Studio - ASP.NET Core Web Application의 "Enable Docker Support" 옵션으로 달라지는 점 [1]
12170정성태3/6/202019671오류 유형: 599. "Docker Desktop is switching..." 메시지와 DockerDesktopVM CPU 소비 현상
12169정성태3/5/202022515개발 환경 구성: 473. Windows nanoserver에 대한 docker pull의 태그 사용 [1]
12168정성태3/5/202024742개발 환경 구성: 472. 윈도우 환경에서의 dockerd.exe("Docker Engine" 서비스)가 Linux의 것과 다른 점
12167정성태3/5/202021739개발 환경 구성: 471. C# - 닷넷 응용 프로그램에서 DB2 Express-C 데이터베이스 사용 (3) - ibmcom/db2express-c 컨테이너 사용
12166정성태3/4/202024165개발 환경 구성: 470. Windows Server 컨테이너 - DockerMsftProvider 모듈을 이용한 docker 설치
12165정성태3/2/202021645.NET Framework: 900. 실행 시에 메서드 가로채기 - CLR Injection: Runtime Method Replacer 개선 - 네 번째 이야기(Monitor.Enter 후킹)파일 다운로드1
12164정성태2/29/202022695오류 유형: 598. Surface Pro 6 - Windows Hello Face Software Device가 인식이 안 되는 문제
12163정성태2/27/202021264.NET Framework: 899. 익명 함수를 가리키는 delegate 필드에 대한 직렬화 문제
12162정성태2/26/202027322디버깅 기술: 166. C#에서 만든 COM 객체를 C/C++로 P/Invoke Interop 시 메모리 누수(Memory Leak) 발생 [6]파일 다운로드2
12161정성태2/26/202022425오류 유형: 597. manifest - The value "x64" of attribute "processorArchitecture" in element "assemblyIdentity" is invalid.
12160정성태2/26/202022158개발 환경 구성: 469. Reg-free COM 개체 사용을 위한 manifest 파일 생성 도구 - COMRegFreeManifest
12159정성태2/26/202017523오류 유형: 596. Visual Studio - The project needs to include ATL support
12158정성태2/25/202021925디버깅 기술: 165. C# - Marshal.GetIUnknownForObject/GetIDispatchForObject 사용 시 메모리 누수(Memory Leak) 발생파일 다운로드1
12157정성태2/25/202020923디버깅 기술: 164. C# - Marshal.GetNativeVariantForObject 사용 시 메모리 누수(Memory Leak) 발생 및 해결 방법파일 다운로드1
12156정성태2/25/202019316오류 유형: 595. LINK : warning LNK4098: defaultlib 'nafxcw.lib' conflicts with use of other libs; use /NODEFAULTLIB:library
12155정성태2/25/202020253오류 유형: 594. Warning NU1701 - This package may not be fully compatible with your project
12154정성태2/25/202018814오류 유형: 593. warning LNK4070: /OUT:... directive in .EXP differs from output filename
12153정성태2/23/202024182.NET Framework: 898. Trampoline을 이용한 후킹의 한계파일 다운로드1
12152정성태2/23/202021172.NET Framework: 897. 실행 시에 메서드 가로채기 - CLR Injection: Runtime Method Replacer 개선 - 세 번째 이야기(Trampoline 후킹)파일 다운로드1
... 61  62  63  64  65  66  67  68  69  70  71  72  73  [74]  75  ...