Hi I have a C Dll which will interact with a cobol application. we want to send the data to the cobol through internet.
so i created an C# DLL which will call the C DLL. its working fine when i do a consoleapp, but when i try to call the same DLL from ASP.NET its giving error message
i dont understand that error
An attempt was made to load a program with an incorrect format. (Exception from HRESULT: 0x8007000B)
There are some other posts regarding this but those were not matching my context
i think im missing permissions
for asp.net
this is the declaration in my c# dll for calling c dll
[DllImport(@"C:\CCExpert\haz450cp.dll", EntryPoint = "Methodname", CallingConvention = CallingConvention.Cdecl)]
unsafe public static extern void Methodname(ref p1, ref p2);
Hi i changed the settings according to your suggestions but now im getting a new error
Microsoft Visual Studio C Runtime Library has detected a fatal error in w3wp.exe
If you have a C .dll, it'll be either 32-bit or 64-bit. You must make sure that your site is running in the correct platform for that (that is, your site is running as a matching 32/64-bit site.)
In IIS 7, you can configure the bitness of the application pool by right-clicking the app pool and selecting Advanced Settings
. There's a setting called Enable 32-bit applications
, you need to set that to True
for 32-bit sites and False
for 64-bit sites.
You can use Dependency Walker to see if the DLL is 32-bit or 64-bit: use View full paths
(looks like C:\
on the toolbar) and if the dependencies of your .dll and:
That tells you how to set the application pool. To set the app pool you can check this link.
Make sure you use Advanced Settings
when you open the app pool properties, not basic settings. Also, these settings are not available when you bring up properties for your site - they are only available for the app pool.
The most likely cause of this problem is that you are trying to load a 32 bit DLL into a 64 bit process (or vice versa). To verify or rule this out check and see if the Asp.Net is running in 64 bit mode and if so you need to have a 64 bit version of the C DLL
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With