By Michael K. Campbell
One of the great things about IIS 7 is that it provides an entirely new architecture – which enables it to finally treat all application platforms as first-class citizens. For example, with IIS 6 ASP.NET (Microsoft’s own flagship web development platform) was effectively a bolt-on afterthought that was implemented as an ISAPI filter. This meant that authentication, authorization, and handler mappings were duplicated. This, obviously, resulted in additional processing, complexity, and a larger attack surface. The same was roughly true of PHP on IIS 6, as it too was implemented as an ISAPI filter.
With IIS 7, all of that changes, and virtually all web platforms can now be treated as first-class citizens that can be easily plugged into IIS 7’s integrated pipeline through simple handler mappings and minor configuration changes.
In Installing ASP, ASP.NET and PHP/FastCGI Applications on IIS 7 you can easily get a great overview of the full degree and impact of this new functionality by engaging in a quick hands-on lab that lets you take everything for a painless test drive. As such, this is a great lab if you’ve only heard about these new features (and haven’t had a chance to play around with them yet), or if you’ve never heard of these new capabilities (as the lab does a great job of walking you through these new improvements).
The lab itself starts off with a simple overview of creating and debugging a very simple classic ASP website.
What helps make this lab great is that it’s perfectly geared toward folks who haven’t had any hands-on experience with IIS 7 because it deftly guides users through great little changes and additions to the IIS 7 management interfaces, while showcasing how to configure heterogeneous workloads.
TIP: If you haven't played around with IIS 7 yet, pay attention to how many (or few) wizard pages you must "click through" to create a new website with IIS 7.
Of course, one of the highlights of this lab is where it walks you through how easy it is to handle PHP requests with FastCGI/PHP installed on your hosting machine. (On IIS 6 configuring PHP wasn’t exactly brain-surgery, but it also wasn’t high on anyone’s list of things they wanted to do given the number of configuration tweaks that needed to be made. With IIS 7 you can now configure PHP to run faster and better than ever in just a couple mouse-clicks, or even from the command prompt if you prefer the ninja approach.)


When it came to the ASP.NET functionality, I was really expecting something pretty tame. But this lab went the extra mile by providing a walkthrough where you configure a site to run that was developed for IIS 6. Now, the vast majority of sites designed for IIS 6 will work without any issues, configuration changes, or extra ‘effort’ on IIS 7 – as it was designed to allow the greatest degree of compatibility possible. But, obviously, with all the new functionality provided by IIS 7, there are going to be a few cases where sites run into issues.
Happily though, this lab purposefully models one of those edge cases, and then walks you through what you’ll need to do with problematic sites to get them to run flawlessly on IIS 7 by switching them into ‘classic’ (or compatibility) mode.
The lab then concludes by showcasing just how powerful IIS 7 is by walking you through the process of firing off a .bat file that interacts with the new IIS 7 management APIs to add a shared header and footer on the ASP, ASP.NET, and PHP sites that you created during the lab.
In all I guess what I liked so much about Installing ASP, ASP.NET and PHP/FastCGI Applications on IIS 7 is that it does such a great job of showing off some of the great new functionalities and capabilities provided by IIS 7 that make it such a great application server for all sorts of web workloads. Best of all, this lab shows you just what’s possible in a short amount of time and, in a way, that helps you instantly ‘get it’ when it comes to new features and options.