Monday, October 24, 2011

BadImageFormatException in 64 bit windows

All, 
Recently we were trying to move some of our dot net applications from one production server which is in 2003 R2 platform with 32 bit system to 2008 R2 platform with 64 bit system.

We just moved the application .net components / binaries to new server (which is nothing but 2008 R2 + 64 bit system) and as this application's back end is Oracle data base . We installed the Oracle 11g client (64 bit) and created the application pool and necessary virtual directory and pointed to application at IIS level. When we ran the application we are getting errors as 'BadImageFormatException ..etc' related. After couple of hours of analysis and google search, we realized it could be because of bit versions conflicts, as application binaries in 32 bit format, application containing oracle client dll of 32 bit and target system is 64 bit and newly installed oracle client is 64 bit.  

And we wanted to have total application in 64 bit format only, so below steps we have performed and able to load the application successfully.

a) Open the application , deleted the reference to existed oracle client dll.
b)  Refereed to newly installed oracle client dll which is of 64 bit version (this dll can be get it from GAC).
c) Now we have built the application in 64 bit mode. (This setting can be seen from visual studio, right click of project -> Project Properites -> Build Tab -> General Section -> here you go, option to choose the plat form, Platfrom target: selected to x64)
d) And after building the application, we published the project. It has given us fresh binaries of 64 bit compatible.

So we moved this binaries to new test server : Here we did as
(system is 2008 R2, 64 bit, IIS 7.0)
a) created application pool, selected associated framework with classic mode.
b) Created virtual directory, pointed to application pool which is created in above step.
c) mapped the application binaries which newly created.
d) did the iisreset (run -> cmd -> iisreset )

Thats it, We access the application with out issues.  Hope it may works for you ...


Thanks,
Ravi
'Whether article is small or big, nothing wrong in sharing, definitely every post may helpful to some one some where.....'



No comments:

Post a Comment