저는 Vista 64Bit 를 사용하고 있습니다.
그리고 지금 참여하고 있는 프로젝트가 Oracle 을 기반으로 한 .NET Project 이지요.
버전은 10g 이고요

그래서 ODP.NET 을 세팅하게 되었습니다.

그런데 설치를 하고 디버깅을 하게되면 시작하자마자 

이런 에러가 발생하는 것입니다.

"파일이나 어셈블리 'Oracle.DataAccess' 또는 여기에 종속되어 있는 파일이나 어셈블리 중 하나를 로드할 수 없습니다."

제길할... 
엄청 헤메고 다녔습니다.
Vista 64bit 이다보니 자료는 더더욱이나 없더군요.

근데 현상이 비슷한 분들은 많은 듯 보였습니다.
하지만 제의 상황을 해결해 줄만한 내용은 없더군요.

내용을 보면 해당버전의 'Oracle.DataAccess' 을 찾을 수가 없다는 내용같은데...
GAC 에도 올라와있는 상황이었습니다.

혹시나 싶어 64Bit 용 11g ODP.NET 도 설치 해보았습니다만..

지금 이곳은 중국인데 거 다운 받는 것만 해도 7, 8시간은 잡아 먹은 것 같습니다. ㅡㅡ'

그러다 처음엔 Web.Config 를 찬찬히 살펴보았지요...
먼가가 집히는 것이 있었습니다.
Machine.config 를 뒤지기 시작했습니다

<DbProviderFactories>

눈에 확들어오더군요... 캬캬캬 요기다 넣으면 어떨까... 소뒷걸음질을 시작했습니다. 

C:\Windows\Microsoft.NET\Framework64\v2.0.50727\CONFIG\Web.Config 의 
<DbProviderFactories>  내용을 보면 

     <DbProviderFactories>
         <add name="Odbc Data Provider" invariant="System.Data.Odbc" description=".Net Framework Data Provider for Odbc"
             type="System.Data.Odbc.OdbcFactory, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
         <add name="OleDb Data Provider" invariant="System.Data.OleDb"
             description=".Net Framework Data Provider for OleDb" type="System.Data.OleDb.OleDbFactory, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
         <add name="OracleClient Data Provider" invariant="System.Data.OracleClient"
             description=".Net Framework Data Provider for Oracle" type="System.Data.OracleClient.OracleClientFactory, System.Data.OracleClient, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
         <add name="SqlClient Data Provider" invariant="System.Data.SqlClient"
             description=".Net Framework Data Provider for SqlServer" type="System.Data.SqlClient.SqlClientFactory, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
     </DbProviderFactories>

이러한 내용들이 들어갑니다.
DB Provider 들에 대한 내용들이죠...


그래서 이곳에다가 
<add name="Oracle Data Provider for .NET" invariant="Oracle.DataAccess.Client"
             description="Oracle Data Provider for .NET" type="Oracle.DataAccess.Client.OracleClientFactory, Oracle.DataAccess, Version=2.102.2.20, Culture=neutral, PublicKeyToken=89b483f429c47342" />
     

요 내용을 끼워 넣었습니다.

그리고 실행... 

됩니다. 캬캬캬

캬캬캬 우할할할할할할 

쥐를 잡았습니다.


제 짐작으로는 

Oracle Data Provider for .NET 내용을 ODP.NET 을 실행할때 Machine.Config 에 적어주도록 했겠지만 
vista 의 UAC 에 걸려서 기록되지 못한 것 같습니다.

아마도... ^^;

여튼 이런식으로 Vista 64Bit 에서 ODP.NET 10g 32Bit Component 설치를 완료했습니다.
OS를 변경해야하나 걱정의 걱정을 했었는데... 그냥 밀고 나가길 잘한 것 같습니다.

^^

아아아.. 그리고 또 한가지..
놓치고 갈뻔했는데...
기억이 확나네... ㅋㅋ


iis 설정에서 응용프로그램 풀에 잡아 놓은 풀 고급설정에 들어가셔서 "32Bit 응용프로그램 사용" 여부를 True 로 해주셔야 할 것입니다.

햐... 정말 이런 정보를 찾지못해서 많은 시행착오를 하니라고... 죽을뻔 했습니다. 어딘가 있을지도 모를 외국자료도 찾기힘들었고... 이틀동안 거의 Man/day 하루를 까먹은 것 같습니다 그래도 기분은 좋으네요..

이히히... ^^

행복한 고수되셔요...

woojja ))*
\\\\\\\\\\\\\\\\\\

저작자 표시 비영리 변경 금지
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by woojja