Although Microsoft Internet Information Services (IIS) 5.0 improves on Internet Information Server (IIS) 4.0, both versions of IIS use basically the same technology. IIS 6.0, however, is a whole new ball game.
In IIS 5.0 and IIS 4.0, running applications in-process is risky. If an application crashes, it can stop all Web services. IIS 6.0 introduces a new IIS engine, http.sys, that runs in kernel mode. Consequently, Web applications can't affect the engine's status. In effect, all applications in IIS 6.0 run out-of-process, providing improved stability without performance and scalability penalties.
Dedicated application mode is crucial to IIS 6.0's redesigned architecture. When you switch IIS 6.0 into this mode, you enable several features that improve efficiency and reliability.
- You can define individual pages or multiple Web sites as an application pool, then stop, manage, tune, and monitor the pool as a single unit. You can also run an application pool in a security context other than the System account.
- You can set applications to restart after they fail.
- After an application is idle for a specified time period, IIS releases resources until a user calls the application again.
- You can configure two or more identical Web sites to serve the same files and applications on the same machine—a feature known as a Web garden. This new concept will be most useful on multiple-CPU servers: You can assign multiple worker processes to one CPU or a set of CPUs and have several worker processes serve the same content, which protects you from worker-process hangs and lets you scale out on a single server.
In addition, IIS 6.0's compatibility mode lets you take advantage of many of the version's new features and capabilities. At the same time, this mode maintains interoperability with IIS 5.0.
A user-supplied password—rather than IIS 5.0's and IIS 4.0's machine key—secures IIS 6.0's metabase. Consequently, when you're clustering or migrating, you can simply use the Microsoft Management Console (MMC) Internet Information Services snap-in to restore a system's metabase to a different machine. The snap-in also lets you designate a third-party cryptographic service provider, such as a driver for a Secure Sockets Layer (SSL) accelerator card.
Because IIS 6.0's metabase is text-based XML, you can use Notepad to edit the metabase without stopping IIS. In addition, the new version introduces two new IIS Admin Base Objects—Export and Import—which you can access through Active Directory Service Interfaces (ADSI) and Windows Management Interface (WMI). These new objects let you export and import application or site configurations across servers. (A user-supplied password secures the configuration data.)
Although IIS 5.0's synchronous Common Gateway Interface (CGI) calls are reliable, they impede scalability. In IIS 6.0, CGI calls are asynchronous, which significantly improves performance of CGI-based applications.
Finally, all appearances to the contrary, IIS 5.0 doesn't permit bandwidth throttling of host-header sites. But IIS 6.0 does. Windows .NET Server (formerly code-named Whistler) manages IIS bandwidth throttling and lets you limit a host-header site's bandwidth.