성태의 닷넷 이야기
홈 주인
모아 놓은 자료
프로그래밍
질문/답변
사용자 관리
사용자
메뉴
아티클
외부 아티클
유용한 코드
온라인 기능
MathJax 입력기
최근 덧글
[정성태] 제가 큰 실수를 했군요. ^^; Delegate를 통한 Bein...
[정성태] Working with Rust Libraries from C#...
[정성태] Detecting blocking calls using asyn...
[정성태] 아쉽게도, 커뮤니티는 아니고 개인 블로그입니다. ^^
[정성태] 질문이 잘 이해가 안 됩니다. 우선, 해당 소스코드에서 ILis...
[양승조
] var대신 dinamic으로 선언해서 해결은 했습니다. 맞는 해...
[양승조
] 또 막혔습니다. ㅠㅠ var list = props[i].Ge...
[양승조
] 아. 감사합니다. 어제는 안됐던것 같은데....정신을 차려야겠네...
[정성태] "props[i].GetValue(props[i])" 코드에서 ...
[정성태] 저렇게 조각 코드 말고, 실제로 재현이 되는 예제 프로젝트를 압...
글쓰기
제목
이름
암호
전자우편
HTML
홈페이지
유형
제니퍼 .NET
닷넷
COM 개체 관련
스크립트
VC++
VS.NET IDE
Windows
Team Foundation Server
디버깅 기술
오류 유형
개발 환경 구성
웹
기타
Linux
Java
DDK
Math
Phone
Graphics
사물인터넷
부모글 보이기/감추기
내용
<div style='display: inline'> <h1 style='font-family: Malgun Gothic, Consolas; font-size: 20pt; color: #006699; text-align: center; font-weight: bold'>ODP.NET 오류 - The provider is not compatible with the version of Oracle client</h1> <p> 낯설은 것도 있겠지만, 오라클 쪽은 유독 오류 원인을 찾기가 더 힘든 것 같은 느낌입니다.<br /> <br /> 이번에도 <a target='tab' href='http://www.sysnet.pe.kr/2/0/1266'>테스트 환경을 복원</a>하는 중에 발생한 오류인데, ODP.NET의 연결 개체를 사용하는 과정에 다음과 같은 예외가 발생했습니다.<br /> <br /> <img alt='odpnet_ver_compat_error_1.png' src='/SysWebRes/bbs/odpnet_ver_compat_error_1.png' /><br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > <span style='color: blue; font-weight: bold'>The provider is not compatible with the version of Oracle client </span> 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: <span style='color: blue; font-weight: bold'>Oracle.DataAccess.Client.OracleException: The provider is not compatible with the version of Oracle client</span> 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: <span style='color: blue; font-weight: bold'>[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</span> [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 </pre> <br /> 오류 원인을 찾는 것이 만만치 않았는데요. 다행히 다음의 글에서 도움을 받을 수 있었습니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > ODP.NET: The provider is not compatible with the version of Oracle client ; <a target='tab' href='http://oradim.blogspot.com/2009/09/odpnet-provider-is-not-compatible-with.html'>http://oradim.blogspot.com/2009/09/odpnet-provider-is-not-compatible-with.html</a> </pre> <br /> 위의 글에서 제시된 "Cause 1"이 사실상 주된 원인일 텐데, 제 경우에는 "Cause 2: OraOpsXX.dll is missing"이 원인이었습니다.<br /> <br /> 사연은 대충 이렀습니다. 예전에 제가 ODP.NET을 설치하지 않고도 사용할 수 있는 방법을 설명드렸었는데요.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > ODP.NET 설치 없이 .NET 클라이언트 프로그램 배포하는 방법 ; <a target='tab' href='http://www.sysnet.pe.kr/2/0/822'>http://www.sysnet.pe.kr/2/0/822</a> .NET 응용 프로그램에서 64비트 Oracle Data Access Components 사용 ; <a target='tab' href='http://www.sysnet.pe.kr/2/0/825'>http://www.sysnet.pe.kr/2/0/825</a> </pre> <br /> 당시에 32비트 쪽은 위와 같이 xcopy 배포 버전을 사용해서 해결했고, 64비트 쪽은 약간의 부가 작업을 거쳤는데 그것을 해주지 않았기 때문에 발생한 문제였습니다. (위의 환경을 구성했던 때에는 64비트 ODP.NET은 xcopy 배포 버전이 없었습니다.)<br /> <br /> 그런데, 최근 ODP.NET 배포 사이트를 가보니 64비트 역시 Xcopy 버전을 배포해 주고 있었는데요.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > 64-bit ODAC 11.2 Release 4 (11.2.0.3.0) Xcopy for Windows x64 ; <a target='tab' href='http://www.oracle.com/technetwork/database/windows/downloads/index-090165.html'>http://www.oracle.com/technetwork/database/windows/downloads/index-090165.html</a> </pre> <br /> 그래서 위의 버전을 다운로드해 이참에 테스트 코드도 업데이트하는 것으로 해결했습니다. (테스트 환경 망가진 이후로... 여러 가지로 시행착오를 겪는군요. ^^)<br /> </p><br /> <br /><hr /><span style='color: Maroon'>[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]</span> </div>
첨부파일
스팸 방지용 인증 번호
1847
(왼쪽의 숫자를 입력해야 합니다.)