March 26th, 2012, 10:10 AM
WCF Service Error Bad Image Format Exception on x86
I am getting an error Bad Image Format Exception when i change the Platform Target to x86 from Any CPU.
It doesn't throw an exception when running on "Any CPU" as Platform Target.
My OS is Win 7 x64. I figured out that as 64-bit framework being used, it is throwing the exception.
"LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework64\v4.0.30319\config\machine.config."
Now the problem is i am using Sybase database and i have a 32-bit dll and not x64.
So if "Any CPU" is selected and i run the service, i am getting exception for memory location just while i create a connection object.
AseConnection oAseCon = new AseConnection(str);
Is there a solution that i can run a 3rd party 32-bit dll in a WCF Service on 64 bit machine.
Help would be appreciated.
March 27th, 2012, 08:54 AM
Re: WCF Service Error Bad Image Format Exception on x86
I tried to place the 32 bit dll in Bin directory and also SYSWOW64 dir.
The problem is when i run in "Any CPU" mode .. i get error while initializing the 32 bit dll and when i change the Platform Target to x86 i get the following error.
Note: This is WCF Service which i am running and i get this error when i try to start with Default Client for WCF Service "WcfTestClient.exe".
System.BadImageFormatException: Could not load file or assembly 'file:///C:\Users\CShah\Documents\Visual Studio 2010\Projects\SilverLight\SSQueueServiceLibrary\bin\Debug\SSQueueServiceLibrary.dll' or one of its dependencies. An attempt was made to load a program with an incorrect format.
File name: 'file:///C:\Users\CShah\Documents\Visual Studio 2010\Projects\SilverLight\SSQueueServiceLibrary\bin\Debug\SSQueueServiceLibrary.dll'
at System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)
at System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection, Boolean suppressSecurityChecks)
at System.Reflection.Assembly.Load(AssemblyName assemblyRef)
at Microsoft.Tools.SvcHost.ServiceHostHelper.LoadServiceAssembly(String svcAssemblyPath)
=== Pre-bind state information ===
LOG: User = CShah
LOG: Where-ref bind. Location = C:\Users\CShah\Documents\Visual Studio 2010\Projects\SilverLight\SSQueueServiceLibrary\bin\Debug\SSQueueServiceLibrary.dll
LOG: Appbase = file:///C:/Users/CShah/Documents/Visual Studio 2010/Projects/SilverLight/SSQueueServiceLibrary/bin/Debug
LOG: Initial PrivatePath = NULL
Calling assembly : (Unknown).
LOG: This bind starts in LoadFrom load context.
WRN: Native image will not be probed in LoadFrom context. Native image will only be probed in default load context, like with Assembly.Load().
LOG: Using application configuration file: C:\Users\CShah\Documents\Visual Studio 2010\Projects\SilverLight\SSQueueServiceLibrary\bin\Debug\SSQueueServiceLibrary.dll.config
LOG: Using host configuration file:
LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework64\v4.0.30319\config\machine.config.
LOG: Attempting download of new URL file:///C:/Users/CShah/Documents/Visual Studio 2010/Projects/SilverLight/SSQueueServiceLibrary/bin/Debug/SSQueueServiceLibrary.dll.
ERR: Failed to complete setup of assembly (hr = 0x8007000b). Probing terminated."
Tags for this Thread
Click Here to Expand Forum to Full Width