Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Configure ASP.NET to use x86 on x64 Windows

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?

like image 317
Robert MacLean Avatar asked Sep 14 '09 10:09

Robert MacLean


People also ask

How do I change from CPU platform to x86?

In the Configuration Manager dialog, open the Active solution platform drop-down list box and click <New> …. In the New Solution Platform dialog, select x64 in the Type or select the new platform drop-down list box. Select x86 in the Copy settings from drop-down list box. Click OK.

How do I change from x86 to x64 in Visual Studio?

From the BUILD menu in Visual Studio, select Configuration Manager. From the Active solution platform drop-down list, select New. The New Solution Platform dialog displays. In the Type or select new platform combination box, select x64.


2 Answers

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
like image 127
mmx Avatar answered Sep 30 '22 08:09

mmx


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.
like image 23
Jon Spokes Avatar answered Sep 30 '22 09:09

Jon Spokes