For a while now, Virtual Server on my Windows Server 2003 box has been broken. I'd browse to the website but would always get "Service Unavailable" when everything looked configured fine in IIS Manager. Because I was busy, I always moved to my other machine running Virtual PC and did my testing there instead (Virtual PC is just so much easier to use anyway).

Finally I've put some time into troubleshooting as I now need the Virtual Server. First I found an error event at the same time as I tried to browse the website:

Event Type: Error
Event Source: W3SVC-WP
Event Category: None
Event ID: 2274
Date:  13/11/2008
Time:  15:23:42
User:  N/A
Computer: MYSERVER
Description:
ISAPI Filter 'c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\\aspnet_filter.dll' could not be loaded due to a configuration problem. The current configuration only supports loading images built for a AMD64 processor architecture.

which very quickly lead me to

How to switch between the 32-bit versions of ASP.NET 1.1 and the 64-bit version of ASP.NET 2.0 on a 64-bit version of Windows

"IIS 6.0 supports both the 32-bit mode and the 64-bit mode. However IIS 6.0 does not support running both modes at the same time on a 64-bit version of Windows. ASP.NET 1.1 runs only in 32-bit mode. ASP.NET 2.0 runs in 32-bit mode or in 64-bit mode. Therefore, if you want to run ASP.NET 1.1 and ASP.NET 2.0 at the same time, you must run IIS in 32-bit mode."

The server is indeed a 64-bit box so I must have set up ASP.NET to run in 32-bit at some point in the past, not realising it would break anything that required ASP.NET in 64-bit.

So, after two simple commands and restarting the Virtual Server service, I'm back in business!