If you are running a Windows 2003 Server 64-bit box and trying to run a 32-bit application on it you might have seen the following two errors (both are associated with each other):
Could not load all ISAPI filters for site/service. Therefore startup aborted.
ISAPI Filter ‘C:WINDOWSMicrosoft.NETFrameworkv2.0.50727aspnet_filter.dll’ could not be loaded due to a configuration problem. The current configuration only supports loading images built for a AMD64 processor architecture.
Both of these errors are telling you one thing, you are trying to run a 32-bit application on a 64-bit box and it’s not set to allow 32-bit support. Which is a relatively common and easy thing to fix; it’s simply a matter of telling the server and IIS 6 to allow 32-bit support.
Now before you do this you should know that this will make your IIS 6 install run in 32-bit mode, meaning your 64-bit applications won’t be able to take advantage of the 64-bit processor. IIS 6 can run either 32-bit or 64-bit but it will not run in both modes. So you have to decide if losing the 64-bit mode is ok or if you want to find another home for your 32-bit application(s) that are causing the errors.
If you choose to set IIS 6 to run in 32-bit mode then follow these instructions.
First you will want to make sure you have the right .net framework pieces installed. You should get .net framework 2.0 64-bit and .net framework 1.1 and make sure they are both installed on your server. If you have a problem with installing either or it gives you an error that there is an old version installed or something (I got this error) you can download this .net framework clean up tool. It works amazingly, you will however have to reboot your server after the using the tool.
Once you have the .NET Framework pieces installed the rest is very simple, its two simple commands you will execute from the command line.
1 – Click Start
2 – Click Run
3 – Type CMD and hit enter
4 – Type cd and hit enter
5 – Type cd inetpub and hit enter
6 – Type cd adminscripts and hit enter
7 – Type (adsutil.vbs SET W3SVC/AppPools/Enable32-bitAppOnWin64 1) and hit enter (this Windows command will set the 32-bit mode to true, that is what the number one toggle does)
Now you have your IIS set for 32-bit but you still need to tell each version of .NET Framework to run in 32-bit mode. To do this do the following:
If you didn’t keep your command prompt open do steps 1-4 above, then type the command C:Microsoft.NETFrameworkv1.1.4322aspnet_regiis.exe -I (note C: might be different depending on where you installed your version of Windows) and hit enter
If you didn’t keep your command prompt open do steps 1-4 above, then type the command C:Microsoft.NETFrameworkv2.0.50727aspnet_regiis.exe -I (note C: might be different depending on where you installed your version of Windows) and hit enter
After you have done this you simply need to make sure both .net framework versions are set to allowed in IIS Web Server Extensions. To check this do the following:
1 – Click Start
2 – Click Run
3 – Type inetmgr and hit enter
4 – Open Web Server Extensions
5 – Check to be sure .net framework 1.1 and 2.0 are in here and are set to Allowed
If they aren’t in the list then create them in IIS, here is how:
1 – Click on Add a new web service extension (link)
2 – Create extension name (typically ASP.NET v.2.0.50727 and ASP.NET v.1.1.4322)
3 – Click Add (find aspnet_isapi.dll) typically found here (C:WindowsMicrosoft.NETFramework64(32)(ASP version number) aspnet_isapi.dll) NOTE! You must put this entire file location in Quotes (” “) for it to work
4 – Click OK
5 – Check box next to Set Extension Status to Allowed
6 – Repeat for other version of ASP.NET (2.0 and 1.1)
7 – Reset IIS (Start>>Run>>IISRESET) hit enter
8 – Test website
Now test your web based programs and see if they load. If you did the steps right it should no longer kill your App pool in IIS and all of your web applications should load now. Hope this gets your server and websites back to a functioning state.