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

비밀번호

댓글 작성자
 




... 181  182  183  184  185  186  187  188  [189]  190  191  192  193  194  195  ...
NoWriterDateCnt.TitleFile(s)
263정성태6/1/200632661디버깅 기술: 2. 커널 구조체 살펴보기 [5]
262정성태6/1/200625137오류 유형: 5. [설치] WinFX Beta2 - 설치시 문제점 해결
261정성태6/1/200621400웹: 3. IIS 6.0 - AppPool을 활용하여 실 서버(운영 서버)에서 디버깅
258정성태6/1/200629325디버깅 기술: 1. 디버깅 방법 - CLR 프로파일러 [1]파일 다운로드1
274정성태6/7/200622367    답변글 디버깅 기술: 1.1. 디버깅 방법 - CLR 프로파일러 ( on Vista )
254정성태6/1/200618707개발 환경 구성: 2. VPC에 Vista 설치하는 방법 [2]
255정성태6/1/200618545    답변글 개발 환경 구성: 2.1. msconfig 설정과 Windows Activation
259정성태6/1/200617479    답변글 개발 환경 구성: 2.2. Vista VPC에 터미널 서비스 - 원격 접속
253정성태6/1/200615642기타: 14. .NET 2.0 이 지원되는 NDoc 2.0 을 배포합니다.
251정성태6/1/200618731오류 유형: 4. [OS 지원 API] SHParseDisplayName과 Windows 2000
252정성태6/1/200618424    답변글 오류 유형: 4.1. NET BCL 에서 제공되는 FolderBrowserDialog [2]
249정성태6/1/200618064.NET Framework: 71. VB.NET 이외의 언어에서 My 네임스페이스 사용
250정성태6/1/200620866    답변글 .NET Framework: 71.1. VB.NET 이외의 언어에서 My 네임스페이스 사용
248정성태6/1/200619142기타: 13. Code Center Premium에서 Win32 API 소스 찾기
245정성태6/1/200626568오류 유형: 3. [C# / VC++] error C2146: syntax error : missing ';' before identifier 'GetType'
247정성태5/3/200623772    답변글 .NET Framework: 3.1. Interface를 사용하면. [1]
242정성태6/1/200624328오류 유형: 2. [COM+] CreateObject 와 HTTP 500 - Internal server error
243정성태6/1/200621765    답변글 오류 유형: 2.1. [COM+] Resolve Partial Assembly failed for Microsoft.VC80.CRT.mui
244정성태6/1/200623177    답변글 오류 유형: 2.2. [COM+] Server object error 'ASP 0178 : 80070005'
240정성태6/1/200621108스크립트: 9. setTimeout 과 jscript/vbscript 혼용 문제
239정성태6/1/200622194COM 개체 관련: 18. Internet Explorer는 Out-of-process COM 개체입니다.
238정성태6/1/200624119개발 환경 구성: 1. batch 파일에서 실행한 exe에서 batch 실행 문맥의 환경 변수 설정 [3]
236정성태6/1/200644902오류 유형: 1. [.NET COM+] UnauthorizedAccessException: 레지스트리 키 HKEY_CLASSES_ROOT\.... 에 대한 액세스가 거부되었습니다
235정성태6/1/200619465VS.NET IDE: 39. VS.NET 2003/2005에서도 제공되는 VS 6.0 MFC ClassWizard
234정성태4/14/200619107VC++: 24. error C2039: 'pOleStr' : is not a member of '_STRRET'
233정성태4/13/200618492.NET Framework: 70. Response.ContentType 과 Response.AddHeader( "Content-Type", "..." ) 의 차이
... 181  182  183  184  185  186  187  188  [189]  190  191  192  193  194  195  ...