677 Chapter 12 Solutions in this chapter: ■ Inside the Changes in IIS 7.0 ■ IIS 6.0 versus 7.0: The Delta ˛ Summary ˛ Solutions Fast Track ˛ Frequently Asked Questions Getting Started with IIS 7.0 678 Chapter 12 • Getting Started with IIS 7.0 Introduction Many variables must be taken into account when you are considering a move to IIS 7.0 and Windows “Codename: Longhorn” server. Microsoft has gone to great lengths to reduce the obstacles and make this move as seamless as possible. This chapter prepares you for the foundation of IIS 7.0 and helps you structure it in a way that is familiar. Knowledge of IIS 6.0 helps in understanding not only “how” but also “why” the product was changed. In the following chapters, you will learn the fundamentals that are necessary to move to IIS 7.0. Inside the Changes in IIS 7.0 In this chapter we introduce the fundamentals that are accomplished using IIS 7.0 versus past versions, especially IIS 6.0. These fundamentals include: ■ An introduction to the installation changes of IIS 7.0 from a very high level, and how it sets the foundation for deploying secure applications. ■ Why developers like IIS 7.0. A look inside IIS 7.0’s new core server. ■ The confi guration. Why did Microsoft start over and rebuild what already worked? ■ The administration stack is more powerful than ever before. In the past, administrators had two options “out of box” to confi gure IIS without script—IIS Manager and AdsUtil. vbs. IIS 7.0 has a command-console utility, IIS Manager, whose areas are developer extensible. ■ The most effi cient diagnostics stack. Why Request Tracing is just the butter on top of the potato or ketchup on fries. All these fundamentals are collectively necessary and revolutionary. Never in the history of Internet Information Services (IIS) has there been so many feature redesigns as there are in IIS 7.0. IIS 7.0 improves the features for administrators and provides a friendlier environment for developers. As a continuation of Microsoft’s Trustworthy Computing effort, IIS 7.0 improves security while also achieving greater effi ciency, granularity, and performance. The differences between IIS 7.0 and its predecessors are immense. The installation is more detailed than that of IIS 6.0. Administrators now have more control over the features they want to install. The ability to delegate tasks to users without granting full administrative rights allows IIS 7.0 to be easily managed without compromising security. The IIS Manager user interface is more powerful and task oriented. Command-line capabilities have also improved with the implementation of Appcmd.exe. This utility can be used for viewing and confi guring objects in IIS 7.0, making it easier for administrators who need to make many changes to their system. Windows Management Getting Started with IIS 7.0 • Chapter 12 679 Instrumentation (WMI) is friendlier than it was in version 6.0. In IIS 7.0, WMI allows access to manage multiple servers. IIS 7.0 is modular and not so monolithic as the IIS 6.0 core was. Developers can add any functionality they like by creating their own modules and adding them to the core server. For instance, if developers do not like a certain function within IIS 7.0, they can replace it with their own by adding components that are easier to develop. The ability to do this is more convenient with the implementation of new application programming interfaces (APIs). Developers are no longer dependent on Internet Server Application Programming Interfaces (ISAPIs) and their complexity to extend server functionality. A major change in the architecture of IIS 7.0 from previous versions is that .confi g fi les now hold confi guration information for the IIS instead of the metabase. The .confi g fi les also live side by side with ASP.NET settings and can be deployed with application content such as pages and images. IIS 7.0 also has new diagnostic features. The most impressive is a feature called Failed Request Tracing (FREB), which can be enabled and used in diagnosing server request failures or delays. With FREB, you can defi ne a failed request-tracing rule that will capture trace events for that request and log them as they occur without having to reproduce the error. Administrators no longer have to dig through large report fi les searching for the information they need to troubleshoot a specifi c failed request. FREB makes resolving request failures a lot easier. All these changes in IIS 7.0 bring about a better platform for developers, easier management for administrators, improved server performance, and better overall security. Installing IIS 6.0 Although more stable and secure than its predecessors, IIS 6.0 was unable to shrink its memory footprint. With previous versions of IIS, when certain features were disabled, their code remained loaded and resident in memory. For example, when an administrator installed IIS 6.0 and only chose to enable IIS Manager and Web services, code for all other features were also loaded as common fi les and then stored in memory. This meant that administrators would also have to be concerned about patches for all of IIS, even if a patch applied to a feature they weren’t using. For administrators to remove certain features from previous versions, they had to completely uninstall IIS from the system. It was an all-or-nothing installation. While developing IIS 7.0, Microsoft felt that it had an opportunity to improve security by reducing the footprint in memory while making the platform more modular and more effi cient. After you install IIS Manager and Web services, the inetsrv directory for IIS 6.0 appears (see Figure 12.1), and the directory for IIS 7.0 appears, as shown in Figure 12.2. In examining the differences, you see that none of the subdirectories under inetsrv carry over to IIS 7.0. The only top-level subdirectories you have in IIS 7.0 are the .confi g fi les and whatever language(s) you are supporting on your server. For our purposes, we are supporting U.S. English; therefore, we have an en-US directory. All confi guration changes take place in the .confi g subdirectory, so you have only one directory to fi nd and manage. 680 Chapter 12 • Getting Started with IIS 7.0 Figure 12.1 Simple inetsrv Directory Structure Two options can be used to install IIS 6.0, neither of which was done by default on Windows Server 2003: ■ User Interface Administrators could install IIS 6.0 manually via the user interface, by choosing the features they wanted. ■ Unattended Installation Administrators had the option of conducting unattended and automated installations of IIS 6.0. Getting Started with IIS 7.0 • Chapter 12 681 Figure 12.2 inetsrv Directory with IIS 7.0 Installing IIS 6.0 via the User Interface Although IIS 6. 0 is easy to install, learning where to install it from and getting there were diffi cult tasks. In the user interface of Windows Server 2003, you had to go to Control Panel | Add or Remove Programs | Add/Remove Windows Components | Application Server; administrators could then choose IIS and begin to enable the features they wanted. It was not very convenient or easy to fi nd. Figure 12.3 shows the screen where IIS 6.0 selects the user interface. . interface is more powerful and task oriented. Command-line capabilities have also improved with the implementation of Appcmd.exe. This utility can be used for viewing and confi guring objects in. disabled, their code remained loaded and resident in memory. For example, when an administrator installed IIS 6.0 and only chose to enable IIS Manager and Web services, code for all other features. making the platform more modular and more effi cient. After you install IIS Manager and Web services, the inetsrv directory for IIS 6.0 appears (see Figure 12.1), and the directory for IIS 7.0 appears,