Getting Started with IIS7 (Part 1)
Visual Studio comes with an inbuilt web server. No doubt the inbuilt web
server comes handy during development. However, finally your web site needs to
sit inside Internet Information Services (IIS). If you are an ASP.NET developers
you are probably familiar with IIS6. The new generations of Windows namely
Windows Vista and Windows Server 2008 come with IIS7. The new version of IIS is
different than earlier versions in many areas. In fact the entire architecture
of IIS has been revamped for the good. In this article I am going to give you a
jump start on IIS7. I will confine myself to the features that are most commonly
needed by ASP.NET developers. If you wish to deploy your websites on IIS7 then
this article should give you a good start.
New Architecture of IIS7
As I mentioned earlier, IIS7 has been revamped since its previous versions.
The most significant areas of improvement (for developers) are modular
architecture, IIS user interface, request processing pipeline and ASP.NET
integration. Let's see each of these improvements in brief.
The new architecture introduced in IIS7 is modular in nature. Individual
features of IIS are organized in various functionally related modules. This
allows administrators to install only the required features resulting in
decreased footprint of the web server. Additionally, they can install patches
and upgrades related to installed components only. These modules can be turned
on or off using "Windows Features" dialog of Windows Vista.
Request Processing Pipeline
In the early versions of IIS there were essentially two request pipelines.
One used by IIS and one used by ASP.NET. The request authentication, execution
of ISAPI extensions and filters etc. used to happen at IIS level first and then
the request used to reach ASP.NET. Then ASP.NET used to run its own
authentication and HTTP handlers and modules. As you might have guessed there
was some duplication of work and responsibilities. The IIS7 on the other hand
provides an integrated requested processing pipeline that combines IIS and
ASP.NET processing into a single step.
With ASP.NET 2.0 Microsoft added the ASP.NET tab to the IIS application
property dialog. Taking this integration further IIS7 adds a lot more
integration that makes administrator's job easy.
IIS User Interface
IIS user interface has been greatly redesigned for better organization. The
following screen shot shows the new user interface of IIS manager.
Now that you have some idea of what IIS7 has to offer, let's see how some
common tasks can be performed. I am going to use Windows Vista for all the
discussion below. The concepts remain the same for IIS under Windows Server 2008
The IIS manager can be accessed from Control Panel > System and Maintenance >
Administrative Tools > Internet Information Services Manager.
As shown in the figure above. The IIS manager user interface consists of
three panes. The left hand side pane is Connections, the middle pane is
Workspace and the right hand side pane is Actions.
The Connections pane lists application pools and websites. The workspace pane
consists of two tabs at the bottom namely Features View and Content View. The
Features View allows you to work with the settings of the selected item from
Connections pane whereas the Content View displays all the child nodes (content)
of the selected item. The following Figure shows these two views for the
"Default Web Site"
Working with Application Pools
Application pool is a group of IIS applications that are isolated from other
application pools. Each application pool runs in its own worker process. Any
problem with that process affects the applications residing in it and not the
rest of the applications. You can configure application pools individually.
In order to create a new application pool, select "Application Pools" under
Connections pane. Then click on "Add application pool" from Actions pane. This
will open a dialog as shown below:
Specify a name for the new pool to be created. Select .NET framework version
that all the applications from the pool will use. Also select pipeline mode.
There are two pipeline modes viz. integrated and classic. The integrated mode
uses the integrated request processing model whereas the classic mode uses the
older request processing model. Click OK to create the application pool.
Your new application pool will now be displayed in the Workspace pane. To
configure the application pool click on the "Advanced Settings" option under
Actions pane. The following figure shows many of the configurable properties of
an application pool.
One good feature of IIS7 under Vista is that it allows you to create multiple
web sites. This feature was missing on Windows XP or Windows 2000 Professional.
Server editions of Windows obviously don't have such limitation. To create a new
web site, select Web Sites node under Connections pane and then click on "Add
Web Site" under Actions pane. This opens a dialog as shown below:
Here, you can specify properties of the new web site including its
application pool and physical location.
Creating IIS Applications
Creating an IIS application or a Virtual Directory is quick and simple. Just
right click on the web site and choose either "Add Application" or "Add Virtual
Directory" to open respective dialogs (see below).
An existing Virtual directory can be marked as an IIS application by right
clicking on it and selecting "Convert to Application".
Once you create a website or an IIS application, you can then set several
ASP.NET related configuration properties via Workspace pane.
Ok. That's it for now. In the next part I will discuss the hierarchical
configuration used by IIS and feature delegation.