Setting Up a Reliable Web Server by Using Windows 2000
This article discusses some of the IIS 4.0 limitations and how IIS 5.0 addresses these. IIS 5.0 may not look very different from a user interface standpoint, however, don't let that deceive you; a lot of work has been done behind the scenes. We just made sure there is a seamless transition for administrators moving from IIS 4.0 to IIS 5.0.
On This Page
Internet Information Server (IIS) is the award winning Web server for Windows NT Server and has become the leading commercial Web server on the market today. The new version of IIS can get up and running in minutes because it is integrated with Windows 2000. This makes it even easier to create rich, dynamic content and build Web-based business applications for your corporate intranet and Internet sites.
IIS 5.0, which ships as part of Windows 2000, is a significant upgrade to reliability, availability, performance, management, security, application environment, and scalability. This article covers the reliability and availability in IIS 5.0. For information regarding additional IIS 5.0 features, refer to the links listed in Additional Resources.
A Brief Look at IIS 4.0
IIS 4.0, which shipped as part of the Windows NT 4.0 Option Pack, focuses on security, administration, programmability, and support for Internet standards. In addition, the application services of Windows NT Server provide a reliable and scaleable platform for building and deploying Web-based applications. Some of the IIS 4.0 limitations are:
Applications can crash the server
IIS 4.0 has two choices: to run applications out-of-process, or to run them in-process. In the out-of-process option, the application runs in a memory space separate from the memory space used by the Web server. The out-of-process option provides maximum protection, but less performance when compared to the in-process option. When applications running in out-of-process crash, the Web service (inetinfo.exe) is still working and serving pages (see Figure1).
Figure 1 Out-of-Process Application Crash
The default option is in-process, where the application runs in the same memory space as the Web server (inetinfo.exe). In-process provides faster performance when compared to out-of-process, however when applications running in-process crash, they bring down the entire Web server (see Figure 2).
Figure 2 In-Process Application Crash
So the question arises, why can't we run every Web application as out-of-process and isolate failures to not bring down the entire Web server? Out-of-process invokes a separate memory space for every application, and this necessitates increased memory consumption and performance degradation when compared to in-process applications. Out-of-process is a good option to run mission critical applications, but it is an expensive option.
No automatic recovery option and alert when Web service terminates
In IIS 4.0, when the Web service terminates, automated actions to start tasks such as running a batch file, automatically restarting the Web server, or rebooting the machine are difficult to initiate without user intervention. Also, there is no notification in the Event log when IIS terminates unexpectedly.
No restart utilities available for the command line, or from the Internet Services Manager(ISM)
There is a certain level of ambiguity in restarting the Web service and stopping the dependent services. Yes, there is the classic "net stop iisadmin /y" available on Windows NT. This is not very obvious to novice administrators, and the ISM lacks a utility to start, stop or restart IIS directly from the administrative interface. IIS has no command line utility that can be used to start, stop or restart IIS.
Even with some of the above-mentioned limitations, IIS 4.0 is a very robust Web server. However, IIS 5.0 has made significant progress toward enhancing reliability, availability, and performance.
IIS 5.0 ships as part of the Windows 2000 Server and Advanced Server default installations. On Windows 2000 Professional, IIS is not installed by default and can be added through Add/Remove Programs in Control Panel, as seen in Figure 3. (IIS 5.0 is not available on Windows 95 or Windows 98.)
Now that we've seen some of the limitations of IIS 4.0, let's look at how those are specifically addressed in IIS 5.0.
New application protection choices to prevent server crashes
IIS 5.0 provides three application protection choices: out-of-process, in-process (these two existed in IIS 4.0), and an all-new process called pooled-out-of-process. Pooled-out-of-process runs in a separate memory space from the Web service, and many applications can share this pool. Pooled-out-of-process is the default for all new (non-upgrade) Windows 2000 installations, as shown in Figure 4.
Figure 4 Pooled-Out-of-Process
So what has changed at this point? When Application 2 crashes in the pool, all applications in the pool become unavailable. The Web server is still working and serving pages, because out-of-process applications and in-process applications are still running (see Figure 5). On the next request to any of the applications in the pool, the pool is automatically restarted.
Figure 5 Pooled-Out-of-Process Application Crash
Pooled-out-of-process provides faster performance when compared to out-of-process, and it offers improved reliability when compared to in-process.
Automatic recovery option and alert when Web service terminates
Windows 2000 provides a new enhanced services feature called the Service Control Manager (SCM). The SCM provides recovery options for administrator-defined services running on Windows 2000. When the Web service terminates unexpectedly, effective action can be taken without user intervention, such as running a batch file, automatically restarting the Web server, or rebooting the machine, as shown in Figure 6.
An administrator can set recovery options based on first, second, or subsequent service failures. The recovery options include running a custom file, restarting the service, rebooting the machine, or taking no action at all. In addition, IIS 5.0 now captures useful information about the time service terminated and restarted in Event log.
Restart utilities by using the command line, SCM, or from the ISM
IIS 5.0 solves the difficulty in restarting IIS by providing restart options from either a command line, SCM, or ISM without having to reboot the machine. IIS 5.0 provides a command line utility called IISRESET.EXE, with several options like starting, stopping, restarting, enabling, and disabling the Web service. This utility can be used in your custom applications or from a command prompt. By default, the recovery options of the SCM for the IIS Web service is configured to run the file IISRESET.EXE upon service termination (see Figure 6). This will help IIS restart automatically when the Web service terminates. The ISM provides a way to stop, start, restart, and reboot the machine directly from the administrative interface.
The SCM also helps in resolving service dependencies for any service running on Windows 2000. In IIS 4.0, there is no information for administrators about what services are dependent upon each other, before unexpectedly terminating a service. The SCM provides a list of all services that IIS depends on and all services that depend on IIS. To view the dependencies, on the IIS Admin Service Properties property sheet, select the Dependencies tab.
IIS 5.0, an integrated component of Windows 2000, enables users to easily host and manage Web sites, so they can share information and create Web-based business applications. We have seen many ways in which IIS 5.0 is even more reliable and available when compared to IIS 4.0. They are:
New application protection choices to prevent server crashes
Automatic restart and recovery of the Web server without having to reboot the machine
Various methods to manage the Web service – from a command line, SCM or ISM
Windows 2000 Web site:
Introduction to IIS 5.0 features:
Exploring Web and Application Services