5

I am trying to deploy GAL Modifier, which is an ASP.NET website which uses Microsoft Access on a Windows 2003 x64 machine. However there is no JET driver on x64 (see here), so the change is to use change the target CPU to x86.

However as it is a web site there is no option in Visual Studio except Any CPU, so how can I change the settings to force it to use x86?

BIBD
  • 15,107
  • 25
  • 85
  • 137
Robert MacLean
  • 38,975
  • 25
  • 98
  • 152

3 Answers3

8

You should make the application pool 32 bit. Go to Application Pools in IIS7 Management Console, right click your application pool and select "Set Application Pool Defaults..." item.

In the properties dialog, set "Enable 32 Bit Applications" to "True."

This will make the application pool process 32 bit (running in WOW64 mode) and loads the 32 bit version of .NET Framework in the process.

In IIS6, basically the same thing applies. You should switch to 32 bit application pool to enable 32 bit ISAPI extensions:

cscript.exe adsutil.vbs set W3SVC/AppPools/Enable32BitAppOnWin64 "true"

Also, you need to change application mappings from aspnet_isapi.dll in Framework64 folder to aspnet_isapi.dll in Framework folder. The same thing should be done with aspnet_filter.dll.

You can re-register ASP.NET on the server instead of manually changing the DLL configurations:

C:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -i -enable
Mehrdad Afshari
  • 414,610
  • 91
  • 852
  • 789
3

You may want to put a 1 or 0 on the end of that statement rather than "true"

http://support.microsoft.com/kb/894435/en-us (this is an old link but you can find details with the wayback machine https://web.archive.org/web/20150131051556/http://support.microsoft.com/kb/894435/EN-US/)

ASP.NET 1.1, 32-bit version

To run the 32-bit version of ASP.NET 1.1, follow these steps:

Click Start, click Run, type cmd, and then click OK.

  • Type the following command to enable the 32-bit mode: cscript %SYSTEMDRIVE%\inetpub\adminscripts\adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 1
  • Type the following command to install the version of ASP.NET 1.1 and to install the script maps at the IIS root and under: %SYSTEMROOT%\Microsoft.NET\Framework\v1.1.4322\aspnet_regiis.exe -i
  • Make sure that the status of ASP.NET version 1.1.4322 is set to Allowed in the Web service extension list in Internet Information Services Manager.

ASP.NET 2.0, 32-bit version

To run the 32-bit version of ASP.NET 2.0, follow these steps:

Click Start, click Run, type cmd, and then click OK.

  • Type the following command to enable the 32-bit mode: cscript %SYSTEMDRIVE%\inetpub\adminscripts\adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 1
  • Type the following command to install the version of ASP.NET 2.0 (32-bit) and to install the script maps at the IIS root and under: %SYSTEMROOT%\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -i
  • Make sure that the status of ASP.NET version 2.0.50727 (32-bit) is set to Allowed in the Web service extension list in Internet Information Services Manager.

ASP.NET 2.0, 64-bit version

To run the 64-bit version of ASP.NET 2.0, follow these steps:

  • Click Start, click Run, type cmd, and then click OK.
  • Type the following command to disable the 32-bit mode: cscript %SYSTEMDRIVE%\inetpub\adminscripts\adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 0
  • Type the following command to install the version of ASP.NET 2.0 and to install the script maps at the IIS root and under: %SYSTEMROOT%\Microsoft.NET\Framework64\v2.0.50727\aspnet_regiis.exe -i
  • Make sure that the status of ASP.NET version 2.0.50727 is set to Allowed in the Web service extension list in Internet Information Services Manager.
Jon Spokes
  • 2,599
  • 2
  • 18
  • 21
0

on iis 6.0, on your left side select "Application Pools", then (on your right side) right click on your app and click on "Advanced Settings...", on the "Enable 32-Bit Applications" option, change to True, and you're ready to go!