Besides the advantages of 64-bit memory allocation (> 4 GB - see this question on StackOverflow for why 32-bit +4 GB solutions won't work for me), what other reasons do I have for recommending that we should host an ASP.NET website on 64-bit Windows Server 2008, as opposed to the 32-bit version?
If it's only the larger addressable memory (>4 GB) issue, we have a load-balanced solution anyway so we could scale by adding a new (virtual) box.
The CPUs won't be running hot either, so any marginal speed gains couldn't be justified.
My own gut feeling is that we should host on 64-bit if we can, purely because it's easier to scale (by plugging in more RAM when we need to). But is that it?!
All comments and ideas are welcome!
I think the question you should be really asking is why not go x64? If your hardware is supported and your apps work, what's the reason to stick with 32 bit? There is little to no cost difference and its the way all future software is going to move, Exchange 2007 for example is 64bit only and I'm sure many new pieces of software will go that way.
If you can't come up with a compelling reason to stick with 32 bit then I'd go with 64.
To be honest: In my opinion 64-bit should be the default for years now! I can't believe how long it takes the Windows community to make the switch. I can't understand why Microsoft even bothered to release a 32-bit Vista (and now even Windows 7). Even Apple decided to switch from PowerPC to 32-bit x86 although most cpus at the time were already capable of 64-bit. This makes no sense to me at all. Everything would be so much easier if everything would be 64-bit and only 64-bit.
There are lots of "reasons" but the first and foremost is that all of Microsoft's products are going x64. It 'future-proofs' the design a bit, and gives your ASP.NET apps more room to fail (from an OOM error, for example).
This is not ASP.NET-related, but I'll add for the sake of completeness. Some Microsoft Server products, like Exchange Server 2007, run only on 64-bit Windows platforms. I think you could call that a benefit.
I don't think there is a dramatic cost difference between either one, so why not just deploy the new server with Windows Server 2008 64-bit? The ability to utilize its greater memory capacity is the best (and only that I know of) reason to use it. With memory so cheap nowadays, 4 GB just seems so little for a new server!
There are about 10 great answers to this question in this recent RunAs Radio podcast on 64-bit computing.
One thing mentioned is that the bus width is doubled, and therefore can read/write data faster. The performance boost is slight vs. 32 bit for home use perhaps, but certainly well worth it for a server.
There is an obscure (but real) bug similar to Y2K that affects most 32-bit machines. It is due to the unix epoch, used in some windows programs also, having a maximum value of sometime in the year 2038. At which point it will wraparround to 1901!
See Wikipedia "The year 2038 problem"
Relevant to this question because it affects 32-bit machines that use a standard machine sized variable for storing the unix epoch. It will be solved by the upgrade to 64-bit.