Internet Information Server (IIS) ships as an integrated part of Microsoft’s Windows operating system, and each version of Windows has its own version of IIS. Windows NT 4.0 came with IIS 4.0. Windows 2000 shipped with IIS 5.0. And, as you can probably guess by the natural logical progression, Windows .NET Server will ship with IIS 6.0.

But did you know that Windows XP has its own version of IIS? Included in Windows XP Professional is a new version of IIS—IIS 5.1. In this Daily Feature, I’ll show you how IIS 5.1 differs from its cousins.

What’s IIS 5.1?
IIS 5.1 is packaged with Windows XP Professional, but it’s not available for Windows XP Home. And even though Microsoft has given the software the IIS 5.1 moniker, don’t think of it as a direct upgrade from IIS 5.0. Microsoft isn’t updating IIS 5.0 that came with Windows 2000 to 5.1. Nor can you take IIS 5.1 from Windows XP and try to install it on your Windows 2000 servers. It works only with Windows XP Professional.

You might be confused about Microsoft’s decision to ship something like a Web server with what’s supposed to be a client operating system. Bit it’s by no means the first time Microsoft has done this. Both Windows NT Workstation and Windows 2000 Professional shipped with Web servers—IIS 4.0 and IIS 5.0 respectively. Windows XP breaks this pattern somewhat. Because Windows .NET Server isn’t out yet, IIS 6.0 isn’t out. So rather than ship a beta version of IIS 6.0, or include the old version of IIS 5.0 in Windows XP, Microsoft compromised and came up with IIS 5.1. IIS 5.1 contains some new features that the new XP technologies will also have in the .NET Server release. For more information about what’s coming with IIS 6.0, see the Daily Drill Down “What’s coming in IIS 6.0 and Windows .NET Web Server.”

As with all Microsoft Web servers that run on client operating systems, IIS has some restrictions. You can have only a single Web site per installation. Additionally, you are limited in the number of connections the server can handle; IIS 5.1 is licensed for a limit of 10 connections at any one time. You can also forget about clustering multiple IIS 5.1 servers together for load balancing purposes, because Windows XP doesn’t support clustering, and neither does IIS 5.1.

IIS 5.1 doesn’t install as part of XP’s basic Setup routines. You must either perform a custom installation and select IIS 5.1 when you first install Windows XP or go back and install it later. To install IIS 5.1 on an existing Windows XP workstation, run the Windows Component Wizard. You can access the wizard by accessing Add/Remove Programs from Control Panel. When the Add/Remove Programs window appears, select Add/Remove Windows Components. Follow the instructions in the wizard to install IIS 5.1 on your workstation.

Is it me, or are things different around here?
Just like in .NET Server, the XP MMC looks different than that of Windows 2000. A good example of this is the IIS 5.1 MMC. You’ll see a Web Sites folder underneath My Computer in the Start menu, reinforcing the fact that XP is part of the Internet OS. You can get to the main properties page for IIS 5.1 by right-clicking the Web Sites folder and selecting Properties. This is different from IIS 5.0 where you would access those properties via the Properties page of the workstation’s hard drive inside My Computer.

Also, if you look closely at your workstation’s directory structure, you’ll notice that the MSADC and SCRIPT directories are gone and a TSWEB directory has been added. The TSWEB directory contains the new Remote Desktop Sharing feature. Remote Desktop Sharing allows you to control the workstation remotely via Internet Explorer. This is almost like the Terminal Services Advanced ActiveX Client in Windows 2000. Microsoft has now included this feature as part of IIS 5.1’s Web server. You’ll find the feature in the c:\windows\web\tsweb directory.

API altercations
The one thing that I always rant about in new versions of any software is backward compatibility. I’ve always been of the opinion that if a software vendor is going to significantly change the way a program works, they should increase the major version number and not the minor. Microsoft follows this theory with IIS 5.1 With IIS 5.1, Microsoft has added only a few small changes that will affect how you send e-mail if you use Collaborative Data Objects for NT Server (CDONTS) or if you have no other 5.0 servers you are using.

CDONTS
The feature of CDONTS in Windows 2000 and NT4 allows a script to use a SMTP server from a Web page. This allows you to send e-mail from your Web site with a very quick command. Since CDONTS is very small and works quite well, a lot of sample scripts that you find available on the Internet use it to send e-mail.

The big surprise is that Microsoft has killed off CDONTS. Rather than use this tried-and-true method, Microsoft replaced it with CDOSYS. CDOSYS is the supported standard in IIS 5.0, IIS 5.1, and IIS 6.0 in Windows 2000, XP, and .NET to send e-mail from a Web page. So if you try to run scripts on your IIS 5.1 Web page that include CDONTS scripts, they won’t work.

CDOSYS is not as easy to use as CDONTS. And CDOSYS has a few more features that you may never use, like MIME encoding. You can read more about CDOSYS at Microsoft’s Knowledge Base.

Enhanced caching options for ASP
IIS 5.1’s ASP settings panel has some added features that weren’t available in IIS 5.0. Microsoft also rearranged some of the settings to different locations. You’ll notice the addition of the Cache Options tab, which gives you the power to control the memory resources your ASP code resides in.

The Cache Options tab has some leftovers from the Process Options screen in IIS 5.0 along with some new options. You might note my comment earlier about Microsoft taking the easy and making it complex, this new screen goes right in that direction. When you select Cache All Requested ASP Files, you can change the ASP Files Cached In Memory property. Let me just say that all does not mean everything. At least for caching sake, the ALL selection will cache all the ASP files on disk. The Limit ASP Files Cached to property allows you to control memory cache—which may seem like two different options on the same property, but they’re related.

You can limit the number of files cached by selecting the Limit ASP Files Cached To property, and you can also select how much memory is used to cache the files. I haven’t yet tested this theory, but in the object-oriented world of memory allocation, memory is not really physical on chip memory. It could also be virtual memory that resides on your workstations’ hard disk. Make sure you have a lot of RAM (I suggest 512 MB plus) if you’re going to be using your workstation for a heavy-use ASP server.

Better metabase maintenance functions
The help documents indicate that the metabase backup tools are improved in IIS 5.1 and that they are no longer keyed to the server from which they came. In IIS 4.0 and IIS 5.0, your metabase could only be restored from the server it came from, making upgrades a bit tricky and annoying. Microsoft finally addressed and fixes this problem with IIS 5.1

You can also now export your metabase and import it on a different system. Exactly how to do this is beyond the scope of this article, but it’s a nice feature that will make moving your Web site to other versions of IIS much easier. However, I still prefer to use MetaEdit to extract, edit, and import metabases.

VBScript issues
Windows XP ships with VBScript 5.6, which has problems with code written for 5.5. What specific problems does VBScript 5.6 have with scripts written for VBScript 5.5? Good question. Microsoft doesn’t let you in on that secret—it just says there are “some incompatibilities” that may cause your system to crash or display an access violation Blue Screen. You can correct this problem by downloading and installing a patch from Microsoft’s Support Web site.

I haven’t yet upgraded my everyday workstation to XP for this reason. Microsoft’s lack of forthrightness on this issue raises the question about what other features of IIS 5.1 don’t work as advertised. If you are running a production environment, you might want to consider holding off moving to XP until the .NET server is out of its beta stages. This would allow you to have the same code that runs on your desktop test station functioning on the server without any changes.

Keep on trying
While IIS 5.1 is a little better than 5.0, you should only use it if you are on the bleeding edge and are moving to .NET server in the coming months. With the API inconsistencies and connection limits of being only a workstation server, you could not and should not use IIS 5.1 for your main Web site. However, it does serve plain old HTML quite nicely and hasn’t crashed on me yet doing just that.