views:

23

answers:

2

We have an VB.net application that is being moved from one box to another. It runs great on the old box. The new box is configured the same as the old one but is on newer hardware. When I run the application on the new server it complains that the adobe toolkit that we use can not be found.

The error message is.

Compiler Error Message: BC30002: Type 'FDFACXLib.FdfApp' is not defined.
on the line:
Dim FdfAcx As FDFACXLib.FdfApp

The FDFACX.DLL and other associated dlls are in the c:\inetpub\wwwroot\bin directory. I checked permissions on the files and the ASP user has full access to them. I also registered them with regsvr32.

Visual studio is installed on the new box and if I run the project using the built in development server everything runs great (references to FDFACX.dll are set).

It appears that IIS can't reference the dll. I don't know what else to try at this point. Any suggestions?

+1  A: 

A 64-bit process cannot load 32-bit libraries. Perhaps the .NET application is running in 64-bit mode? If the application is running on a new x64 box, then most likely it is running in, by default, a 64-bit application pool in IIS. An application pool is a worker process that runs one or more of your IIS applications. A 64-bit application pool, being a 64-bit process, cannot load 32-bit libraries. So in IIS, you need to create a new 32-bit application pool and then update the IIS application running your .NET application to use the new 32-bit application pool instead of the default application pool.

Open IIS 7 Administrator. Navigate to your website. In the right side bar, click Basic Settings, where you will find the name of the application pool for that website (by default, it is DefaultAppPool). Then in the navigation go to Application Pools, select the correct application pool, and click Advanced Settings on the right. If Enable 32-Bit Applications is set to false, then it is 64-bit. Enable 32-Bit Applications must be set to true for the application pool that your IIS application is using.

Justice
How would I check to see if the app is running in 64 bit mode?
Future429
See the just-appended second paragraph.
Justice
The server is 2003 with IIS 6 so the instructions dont match but looking at some other sources it appears we are running in 32 bit mode.
Future429
A: 

Just for chuckles, add the directory with the dll to your path?

ljm