Running 32bit ASP.NET 1.1 Apps on 64bit Windows Server 2008

By Alasdair Lumsden on 28 Nov 2008

We don’t treat Microsoft Windows as a second class citizen here at EveryCity – after all it’s a legitimate and very popular hosting platform. Yes, I’m a Solaris convert; it’s my preferred weapon of choice, but Windows Server ain’t that bad.

Indeed, it’s father, Mr David Cutler gets my total respect – the NT kernel is a masterful stroke of genius, even if the Win32 userland deposited on top is a steaming pile of cack. If you haven’t read Showstopper, which is a vivid account of the creation of NT, go out and locate a copy. It’s a cracking good read and I thoroughly enjoyed it. One of my favourite blog authors, Jeff Atwood of Coding Horror, gave it a pretty good writeup.

Anyway, I digress. A whole bunch of months ago we started putting Windows Server 2008 into production. IIS 7 is rather funky – native rewrite rules, FastCGI PHP support, some sane defaults (New application pool for each website) make it a compelling upgrade from Server 2003. Also, so far most ASP.NET applications dumped on it "just work".

However occasionally you have to move a web application from a 32bit Server 2003 box to a 64bit Server 2008 box. If that application has some 32bit DLLs, then you’re going to need to enable a 32bit support, otherwise the app will break at some point.

Thankfully it’s easy – head on over to the Application Pools area, right click the appropriate application pool, click "Advanced Settings", and enable 32bit support:

If your App is an ASP .NET 1.1 application, it should in theory run under .NET 2.0 without too much hassle, but you may just want to select "Classic" as your "Managed Pipeline Mode". I am not a .NET developer, and do not profess to know what this does, but I had to enable it for an ASP .NET 1.1 app I moved recently. According to one of my Microsoft loving friends, don’t install .NET 1.1 on Server 2008 – it won’t work and shoehorning it on may break your box. Apparently.