Click to Rate and Give Feedback
Related Articles
Your users are complaining that a server is running poorly—do you know where to look to diagnose the problem? PerfMon can be an indispensible tool for this as it has numerous diagnostic capabilities. Get an overview of the key indicators you should use to diagnose a variety of common bottlenecks that can slow down your servers.

By Steven Choy (August 2008)
When you want to reduce the total cost of ownership of the desktop machines in your organization, application lockdown can be a great help, letting you limit IT issues related to unsupported applications. See how you can use software restriction policies and Group Policy to control the applications being run throughout your IT infrastructure.

By Chris Corio and Durga Prasad Sayana (June 2008)
Too many administrators underestimate the importance of having a well-designed Organizational Unit structure. Find out why having a sound OU strategy is important and determine the best OU structure for your organization.

By Ken St. Cyr (May 2008)
Many applications that rely on Active Directory define their own changes to the schema. But it's important that these changes don't impact other applications. Get an overview of extending the Active Directory through the classSchema and attributeSchema objects.

By Vikas Malhotra (May 2008)
More ...
Articles by this Author
Securing your IIS 6.0 installation is an important task. The amount of work required can vary greatly depending on the complexity of your application as well as your infrastructure and how these combine with your need to secure content.

By Brett Hill (May • June 2006)
One of the best improvements in IIS 6. 0 over earlier versions was the introduction of Application Pools (often called App Pools for short). When IIS 6. 0 is running in Worker Process Isolation Mode (the default in a new installation of Microsoft® Windows Server™ 2003), every IIS 6.

By Brett Hill (January • February 2006)
IIS 5. 0 administrators are familiar with the important security-related tasks required to harden and maintain a secure Web services environment. The many new features and capabilities of IIS 6. 0, available with every version of Windows Server™ 2003, renders the previous version obsolete.

By Brett Hill (Winter 2005)
More ...
Popular Articles
Many mobile professionals today need the line of business applications they use in the office (CRM, ERP, and the like) to be accessible from a mobile device when they are in the field. See how Windows Mobile and Mobile Device Manager allow you to deploy rich mobile functionality for critical line of business applications.

By Matt Fontaine (September 2008)
Shared and privileged account passwords are commonplace, but far too many organizations fail to adequately manage these shared passwords. This creates a serious security issue. Explore the risks involved with shared and privileged accounts, and discover better approaches to managing more secure passwords.

By Chris Stoneff (September 2008)
Too many administrators underestimate the importance of having a well-designed Organizational Unit structure. Find out why having a sound OU strategy is important and determine the best OU structure for your organization.

By Ken St. Cyr (May 2008)
Your users are complaining that a server is running poorly—do you know where to look to diagnose the problem? PerfMon can be an indispensible tool for this as it has numerous diagnostic capabilities. Get an overview of the key indicators you should use to diagnose a variety of common bottlenecks that can slow down your servers.

By Steven Choy (August 2008)
More ...
Read the Blog
Pav Cherny discusses the limitations of the built-in Directory Management Service in SharePoint and explains how you can replace this component with a custom solution that lets you synchronize SharePoint recipient information with other directory solutions. In particular, he ...
Read more!
"One of the common things that administrators must deal with on an ever-increasing basis is the regular changing of the password for shared and privileged accounts, such as the built-in administrator or root account, a firecall account, or perhaps even a process account." In the Read more!
Suppose one of the PCs you support is acting up—freezing, crashing, blue screening. Is some piece of hardware failing? Is some newly installed application causing trouble? Or could it be faulty memory? One way to find out for sure is with the free Microsoft Windows Memory Diagnostic ...
Read more!
Henrik Walther answers your questions about Microsoft Exchange. Here’s just a sample of the ones he tackles in the September issue of TechNet Magazine: ...
Read more!
Beyond traditional voice, messaging, and productivity functions, many businesses today want mobile professionals to have access to the same line of business systems they use in the office through mobile LOB applications, adding new considerations for those tasked with deploying and maintaining IT systems. In ...
Read more!
Back in the Winter 2005 issue of TechNet Magazine, when TechNet Magazine was still in its infancy, Jesper Johansson wrote a fantastic article called "Anatomy Of A Hack: How A Criminal Might Infiltrate Your Network". ...
Read more!
More ...
BetaBox First Look at IIS 7.0
Brett Hill


When I saw my first demo of IIS 7.0, I thought "this changes everything." The new version changes the application’s architecture and introduces some exciting changes that greatly improve the capabilities of IIS. These changes will affect IT administrators and developers alike. So rather than discuss the "how-tos" of IIS, I’ll introduce some of the exciting changes in IIS 7.0 and discuss their significances.

Modular is Flexible
In IIS 5.0 and IIS 6.0, most of the code that provides basic features—such as delivering static content, authenticating users, displaying a virtual directory, and so on—resides in a single DLL. While there are some benefits to having all functionality in a single executable, there are also some drawbacks. For example, if the IIS developers at Microsoft want to add a new feature, they essentially have to issue a new release of the application. This makes it challenging to provide fixes and new functionality. And when all the features and functionality are contained in the same DLL, the user can disable a feature to prevent execution of that code, but the code remains loaded and resident in memory.
To address these problems, as well as provide additional benefits, IIS 7.0 has been modularized. In other words, the monolithic DLL has been broken up into its component parts.
While you, the user, can still enable and disable functionality like you could in IIS 6.0, you can go even further with IIS 7.0 and completely remove from memory any modules you do not require. If you don’t use Digest authentication, remove the module! Don’t use Directory Listings? Just remove it from the list of modules and never worry about it again. This improves security since features you don’t need cannot be enabled by mistake or by malicious intent.
Five Key Changes for Administrators
1 Configuration Settings formerly stored in the metabase are now stored in applicationhost.config and extended to include web.config for per site and application elements. Since the .config files are simple text files, you can easily backup and restore your Web site configuration. In addition, you can copy these files to another server and replicate your Web server setup.
2 Remote management The Web Administration tool is a completely redesigned Windows® Forms application. The tool communicates to IIS 7.0 using either HTTP or HTTPS so you can remotely manage your Web servers without requiring additional ports to be open on your firewall.
3 Delegating tasks Administrators can lock down the configuration of IIS 7.0, so specific people can be limited to working with specific features. Options are very granular: you can approve or deny virtually any setting on a per user basis, and even choose whether to expose or hide features in the user interface.
4 Tracing and troubleshooting In the Web Manager, you can view the currently executing requests. In addition, you can set up tracing to occur when a specific error code is returned or URL is accessed. In this way, you can easily trigger the creation of an .evt file for review without having to catch the error in real time or use a debugger.
5 Integrated permissions Forms authentication is built in and can be used for all kinds of content, not just .NET-based applications. Notably, since ASP.NET and IIS are integrated, you do not need to manage permissions for ASP.NET separately from non-ASP.NET content.

In addition, the memory footprint of IIS is reduced since code that you don’t require isn’t loaded. While it is still too early in the development of IIS 7.0 to speak of performance enhancements, the IIS team anticipates some performance benefits from reduced code overhead.
From the IIS team’s viewpoint, updates can be handled more efficiently. Updates and new features can be issued without releasing an entirely new version of the app.
To this point, however, I have yet to mention one of the biggest benefits. With IIS 7.0, you can add any functionality you like directly to the server by writing your own managed (.NET) or unmanaged modules and adding them to the core of IIS. For the first time, developers can easily extend the capabilities of IIS to do things that have only been accessible to those willing to tackle the complexity of ISAPI filter programming. Do you want your IIS 7.0 server to authenticate to a legacy server using a protocol long forgotten and unsupported? No problem. Want to design your own IIS log file format? Go for it. How about a module that tracks bandwidth used per user, site, or application? Absolutely. The possibilities are endless, and we’re just getting started.

.NET Integration
IIS 7.0 is designed to work seamlessly with .NET-based applications. This means it can take advantage of all the capabilities of the .NET Framework and all the deep integration into the Microsoft platform that .NET allows.
For example, in IIS 6.0, if you deploy .NET applications and enable Forms authentication, your static content is not protected by the security settings in your .NET app. If you aren’t familiar with Forms-based authentication in ASP.NET, imagine that you could put all your users and passwords in a store, such as a file or database instead of the local Security Account Manager (SAM) or Active Directory®. You can do that with ASP.NET and it works great. The big advantage is that since your users, groups, and passwords live in a database or file, your entire site is much more portable. In some cases, performing an xcopy can move your entire application and security configuration.
The problem with Forms authentication in IIS 5.0 and IIS 6.0 is that the security only applies to files mapped to the .NET Framework. For example, if you deny Sally access using Forms authentication via your web.config, she won’t be able to access .aspx pages. However, she can access .htm, .asp, .gif, .jpg, and any other files that are not mapped to the .NET Framework.
This, however, isn’t the case with IIS 7.0. Since IIS is integrated with .NET, Forms authentication is built in and can be used for all kinds of content, not just .NET applications. If you want to enable Forms authentication, you can store your users in a SQL Server™ database (XML or Access will also do). This will work no matter what kind of content you have.
.NET Framework integration also means changes to the IIS settings store known as the metabase. In IIS 4.0 and IIS 5.0, the metabase was a proprietary binary file. This evolved into an XML file structure in IIS 6.0. In IIS 7.0 the transformation goes another step further by merging it into the .NET config file hierarchy.
In other words, IIS settings are now managed in an XML-formatted text file that can be configured directly from .NET-based applications. This allows developers to write code that can configure its own Web site and directories, assign security principals, and enable or disable IIS features from within your code. Administrators can more easily administer servers via .config files as they are easy to read, modify, back up, and deploy. In addition, Windows Management Instrumentation (WMI) has been greatly enhanced to facilitate the management of IIS servers using scripts.

.Config Constructs
The applicationhost.config and Web.config files replace the metabase as the primary store for the IIS server configuration and settings. Applicationhost.config lists the core modules to load, as well as defining Web sites, virtual directories, and other values as required. For example, the snippet from applicationhost.config that is shown in Figure 1 defines a Web site.
Figure 1Applicationhost.config Excerpt
<sites>
    <siteDefaults>
        <logFile directory="C:\WINDOWS\System32\LogFiles" />
    </siteDefaults>

    <applicationDefaults applicationPool="DefaultAppPool" />

    <site name="Default Web Site" id="1">
        <bindings>
            <binding protocol="http" bindingInformation="*:80:" />
        </bindings>
       
        <application path="/" applicationPool="DefaultAppPool" >
            <virtualDirectory path="/" physicalPath="C:\inetpub\wwwroot" />
        </application>

    <logFile directory="C:\WINDOWS\System32\LogFiles" />
    </site>
</sites>
Individual Web sites and applications can be customized to add or remove capabilities as required via a web.config file, which resides in the Web root or application root folder. For example, the settings shown in Figure 2 configure a Web site to turn off Anonymous and Windows Authentication, and enable Basic Authentication.
Keep in mind that these settings are completely manageable from the new Web Manager, .NET APIs, WMI, or your favorite XML or text editor.
Figure 2Enabling Basic Authentication
<configuration>
    <system.webServer>
        <security>
            <authentication>
                <windowsAuthentication enabled="false" />
                <anonymousAuthentication enabled="false" />
                <basicAuthentication enabled="true" />
            </authentication>
        </security>
    </system.webServer>
</configuration>

Management and Configuration
You are no longer bound by the Microsoft® Management Console (MMC). Instead, IIS 7.0 sports a completely redesigned user interface called the Web Manager. Since it’s a Windows Forms application, the Web Manager is completely integrated with the .NET Framework and can be extended to include custom features and configured to expose only the capabilities that you require.
In addition, you can extend the Web Manager to expose settings that are part of custom applications. This allows Web developers to use the Web Manager to configure their own applications. Application settings can be stored as part of the IIS configuration store so when you copy the .config file to another server, the application configuration is also replicated.
Of course, you may not want someone who manages a Web site running such an application to be able to make changes to the entire IIS server’s configuration. For this reason, IIS 7.0 provides the ability to delegate administration. You can specify which users have access to particular features in the Web Manager, and even completely hide features from certain users. In this way, you can restrict a Web site operator to managing the functions that affect just their site, rather than giving them elevated privileges on the server.
When you open the Web Manager, you specify which IIS 7.0 installation you want to manage. If you specify a remote server, Web Manager connects to it using HTTP or HTTPS via a Web service. This allows you to manage IIS 7.0 in a secured environment where RPC (remote procedure call) network communications are prohibited through a firewall.

Tracing and Diagnostics
While some of the new features are designed for administrators, and others apply more to developers, there are some new features that are important to both communities. For instance, Tracing and Diagnostics has been greatly enhanced. In the Web Manager, you can see which requests are currently executing in an Application Pool. Tracing allows you to automatically cause a trace of internal events to be recorded when a specific error code is returned for a certain URL. This is similar to Windows Server™ 2003 SP1 tracing for IIS 6.0, as discussed in this webcast, but this feature has been greatly enhanced for IIS 7.0.
Meanwhile, URLScan functionality is built in and extended. You can create rules for request filtering that reject sequences based on action, length of URL, contents of the URL, and so forth. This is very powerful protection against future, as-yet unknown attacks. Considering the capabilities offered by URLScan, delegated administration, the ability to remove unnecessary code from memory, and various other features , security is clearly a big part of IIS 7.0.

Getting Ready
With all these changes, it’s natural to wonder how much you have to adapt your existing applications and management tools to be able to use IIS 7.0. The good news is that while a lot of features were added, the process model for IIS has not changed much and the same applications you run now should run even better in IIS 7.0. Also, most of the scripts and management tools you use to adjust settings for IIS 6.0 can be used on IIS 7.0 as well.
Since IIS configuration and ASP.NET configuration are merging, you can get a head start on IIS 7.0 management by studying ASP.NET configuration on IIS 6.0. Look at how settings in web.config can adjust ASP.NET app events, including the type of authentication used, authorization, and locking down settings by use of the Location tag. You can also benefit immensely from understanding how to use tracing in Windows Server 2003 SP1, as previously mentioned.
Once IIS 7.0 is released, you will see new applications that integrate deeply with IIS in ways never before possible. Applications will extend the capabilities of IIS 7.0, integrate with the configuration store, and interact with the administrative subsystem. Forms authentication will be used with non-Windows principles against any content. And delegated administration will allow secure management of Web sites by non-administrators. The list is long and impressive.
But more than just a list of new capabilities, IIS 7.0 represents a new era of Web servers from Microsoft, where an application does not just deliver content from IIS but becomes part of it, and where administration and development are integrated with the same tools, scripting languages, and services that the IIS team uses.

Prerelease info in this article is subject to change.
Brett Hill is a Microsoft IIS Evangelist. Prior to working for Microsoft he spent three years as an IIS MVP and ran his own IIS training business. He still operates IIS discussion groups at http://IISlists.com. You can reach Brett at brett@iisanswers.com.
© 2008 Microsoft Corporation and CMP Media, LLC. All rights reserved; reproduction in part or in whole without permission is prohibited.
Page view tracker