기본 콘텐츠로 건너뛰기

[.NET 일반] BadImageFormatException 오류 처리하기.

주로 많이 발생하는 상황은 64Bit O/S 에서 32Bit 플랫폼으로 개발된 어셈블리를 사용할 경우이다. 물론 소스코드가 존재하는 경우는 플랫폼 대상을 x64로 변경하거나 AnyCPU 로 설정해서 재 컴파일하면 된다.

문제가 되는 것은 외부의 DLL을 가져다 쓰는 경우인데, 지금처럼 Oracle.DataAccess.dll 을 가져다 쓰는 경우처럼 소스가 없는 경우는 대략 난감한 상황에 빠지게 된다.

아래와 같이 개발 또는 수행 환경에 따라서 적절하게 적용하면 된다.

IIS 에서 운영되는 웹 어플리케이션 인 경우

IIS 사이트의 Application Pool 의 고급 설정에서 “Enable 32 Bit Applications” 설정을 true 로 변경해 주면 된다.

윈도우 어플리케이션인 경우

현재까지 파악된 것으로는 32Bit Solution으로 처리하고  64Bit Machine 에서 동작하는 경우를 생각하거나 그렇지 못할 경우는 32Bit DLL을 COM으로 Wrapping해서 사용하는 것의 2가지 방법 뿐이 없는 것 같다.

결국은 Oracle 사이트에서 64Bit 용 ODAC를 받아서 64Bit 용 DLL을 사용하는 것으로 적용하는 것으로 결정하였다.

 

댓글