Disclaimer:
This posting is provided "AS IS" with no warranties, and confers no rights. This weblog does not represent the thoughts, intentions, plans or strategies of Microsoft. Use of included script samples are subject to the terms specified at http://www.microsoft.com/info/cpyright.htm

Every so often we come across a support case where a customer has a need for a 32 bit web application to run on the SBS 2008/2011 server. This need usually arises due to a third party website or application that only has a 32 bit Module or ISAPI filter that needs to run on the site. This blog will discuss the steps needed to be able to successfully configure a web site or web application to run under a 32 bit application pool.

In this sample case, I have created a web site called test, running under an application pool that is also called test. This application pool is configured to enable 32-Bit applications which you can see under the advanced settings of the Application pool.

Generally, this is where the support case comes in, as when the customer tries to browse their website it fails with either a 503 service unavailable error or a 500.19 error. In this case we got a 503 service unavailable error first which basically means the app pool has crashed/shutdown.

This will also normally be accompanied by IIS-W3SVC Event 2280 in the application event log similar to the following.

To get past this error we need to edit the Native modules in the applicationhost.config by defining a preCondition bitness parameter for the RpcProxy native module. Native modules are registered and un-registered at the web server level under the <globalModules> section.

Before we make any modifications to the applicationhost.config, take a backup of your current IIS configuration:

Launch an Administrative cmd prompt.

Changed the directory path to C:\Windows\System32\Inetsrv\

Type "Appcmd.exe add backup NameofBackup"

Once we have a successful backup we can go ahead and modify the applicationhost.config file to add the bitness precondition:

From within the same administrative cmd prompt change the path to C:\Windows\System32\inetsrv\config\

Type "notepad applicationhost.config" which will launch notepad and open the applicationhost.config file

Locate the <globalModules> section.

Modify the PasswordExpiryModule to have a bitness precondition so it looks as follows

** Note that preCondition is case sensitive the "C" must be capitalized. Important: SBS 2011 standard will also include entries for kerbauth and exppw listed under <globalModules>. These modules belong to Exchange and are also 64 bit. If you are performing this task on SBS 2011 you will have to add the preCondition for bitness64 to these two modules as well:

Save and close the applicationhost.config.

At this point if you attempt to browse your 32-Bit web site you will now see the other error which is the 500.19 error mentioned earlier.

To correct this error we now need to delete both the DynamicCompressionModule and the StaticCompressionModule from your 32-Bit website/application. To do this perform the following steps:

**Replace yourWebsiteName with the actual name of your site. In this example the name is test.

Do the same for the staticcompression module, Appcmd.exe delete module staticcompressionmodule /site.name:yourWebsiteName

** In this example we are using a basic web site, however in most cases, you will probably be using a web application. Modify the command to have /app.name:yourAppName rather than /site.name:yourWebsiteName if you are using a web application.

After completing these steps you should now be able to browse your 32-Bit web application/site