The IIS 7.0 and above modular architecture is designed to enable the IT professional to customize exactly which features are installed and running on the Web server. IIS is now factored into more than 40 feature modules that can be independently installed on the box, dramatically reducing the potential attack surface, while lowering the footprint requirements, and minimizing patching and security risks.
To take full advantage of this modular architecture, you should plan your IIS installation to match the requirements of the applications you will be deploying. Doing so will minimize the IIS features you install, allowing you to take advantage of the benefits of the IIS modular architecture. We will start by considering several common workload configurations and then look at ways they can be combined and modified.
This article contains:
<a href="http://www.iis.net/learn/install/installing-iis-7/install-typical-iis-workloads#Prerequisites">Prerequisites</a>
<a href="http://www.iis.net/learn/install/installing-iis-7/install-typical-iis-workloads#Principle">Principle IIS Workloads</a>
<a href="http://www.iis.net/learn/install/installing-iis-7/install-typical-iis-workloads#ASP.NET">ASP.NET Workload</a>
<a href="http://www.iis.net/learn/install/installing-iis-7/install-typical-iis-workloads#InstallClassic">Install Classic ASP Workload</a>
<a href="http://www.iis.net/learn/install/installing-iis-7/install-typical-iis-workloads#InstallFastCGI">Install FastCGI for PHP</a>
<a href="http://www.iis.net/learn/install/installing-iis-7/install-typical-iis-workloads#FullInstall">IIS 7.0 and Above Full Install</a>
<a href="http://www.iis.net/learn/install/installing-iis-7/install-typical-iis-workloads#Adding">Adding Diagnostics</a>
<a href="http://www.iis.net/learn/install/installing-iis-7/install-typical-iis-workloads#AddingSecurity">Adding Security Features</a>
<a href="http://www.iis.net/learn/install/installing-iis-7/install-typical-iis-workloads#Management">Management Features for Local and Remote Administration</a>
<a href="http://www.iis.net/learn/install/installing-iis-7/install-typical-iis-workloads#Summary">Summary</a>
This article discusses installing IIS 7.0 and above on Vista and Windows Server® 2008. This article will not instruct you on how to use the Vista / Windows Server 2008 install technologies; specific details on using setup user interfaces or command line tools to install IIS can be found at:
<a href="http://www.iis.net/learn/install/installing-iis-7/installing-iis-7-and-above-on-windows-server-2008-or-windows-server-2008-r2">Installing IIS 7.0 on Windows Server 2008</a>
<a href="http://www.iis.net/learn/install/installing-iis-7/installing-iis-on-windows-vista-and-windows-7">Installing IIS 7.0 on Windows Vista</a>
<a href="http://www.iis.net/learn/install/installing-iis-7/installing-iis-from-the-command-line">Installing IIS 7.0 from the Command Line</a>
<a href="http://www.iis.net/learn/install/installing-iis-7/using-unattended-setup-to-install-iis">Using Unattended Setup to Install IIS</a>
In this section we will consider several common workloads that typify task specific installations of IIS. These workloads can serve as starting points for customizing an IIS install to meet your specific needs.
The common IIS workloads we will consider are:
Default Install - Static Content web Server
ASP.NET
Classic ASP
Fast CGI for PHP
IIS Full Install
In IIS, you are free to choose the exact features to install to match your workload. In the section above we examined several typical workloads that an IIS web server may be configured with. Combining workloads is a simple process of adding the features of one or more workloads together into your install.
It is also possible to modify these workloads by removing features that you do not want to allow, for example Directory Browsing, or by adding additional features such as authentication or authorization.
Additional sections will provide guidance on adding support for local and remote management, security, diagnostic, and IIS 6.0 compatibility to the common workloads.
The Static content web server is the most basic and commonly used installation profile and is commonly used in conjunction with other workloads. The pre-selected setup defaults of IIS provide all the IIS modules required to support this workload. This includes the ability to serve static html files, documents, and images. Additionally support for default document, directory browsing, logging and anonymous authentication is provided. The IIS Management Console is also installed.
To install IIS features for Static Content Web Server from the Vista/Windows Server 2008 setup user interface, select the following IIS features by UI name:
UI Name
Update Name
Static Content
IIS-StaticContent
Default Document
IIS-DefaultDocument
Directory Browsing
IIS-DirectoryBrowsing
HTTP Errors
IIS-HttpErrors
HTTP Logging
IIS-HttpLogging
Logging Tools
IIS-LoggingLibraries
Request Monitor
IIS-HttpTracing
Request Filtering
IIS-RequestFiltering
Static Content Compression
IIS-HttpCompressionStatic
IIS Management Console
IIS-ManagementConsole
To install IIS features for Static Content Web Server via pkgmgr.exe use the following command line:
Start/w pkgmgr /iu:IIS-WebServerRole;IIS-WebServer;IIS-CommonHttpFeatures;IIS-StaticContent;IIS-DefaultDocument;IIS-DirectoryBrowsing;IIS-HttpErrors; IIS-HealthAndDiagnostics;IIS-HttpLogging;IIS-LoggingLibraries;IIS-RequestMonitor;IIS-Security;IIS-RequestFiltering;IIS-HttpCompressionStatic;IIS-WebServerManagementTools;IIS-ManagementConsole; WAS-WindowsActivationService;WAS-ProcessModel;WAS-NetFxEnvironment;WAS-ConfigurationAPI
To install IIS features for Static Content Web Server via ServerManagerCmd.exe use the following command line:
ServerManager–install Web-Server
The ASP.NET workload extends the static content workload by adding modules for ASP.NET, .NET Extensibility, Request Filtering, ISAPI Filters, and ISAPI Extensions.
To install IIS features for ASP.NET from the Vista/Windows Server 2008 setup user interface, select the following IIS features by UI name (in addition to features for static content):
IIS-ASPNET
.NET Extensibility
IIS-NetFxExtensibility
ISAPI
IIS-ISAPIFilter
ISAPI Extensions
IIS-ISAPIExtensions
To install IIS features for ASP.NET along with features for Static Content Web Server via pkgmgr.exe, use the following command line:
Start/w pkgmgr /iu:IIS-WebServerRole;IIS-WebServer;IIS-CommonHttpFeatures;IIS-StaticContent;IIS-DefaultDocument;IIS-DirectoryBrowsing;IIS-HttpErrors;IIS-ApplicationDevelopment;IIS-ASPNET;IIS-NetFxExtensibility;IIS-ISAPIExtensions;IIS-ISAPIFilter;IIS-HealthAndDiagnostics;IIS-HttpLogging;IIS-LoggingLibraries;IIS-RequestMonitor;IIS-Security;IIS-RequestFiltering;IIS-HttpCompressionStatic;IIS-WebServerManagementTools;IIS-ManagementConsole; WAS-WindowsActivationService;WAS-ProcessModel;WAS-NetFxEnvironment;WAS-ConfigurationAPI
To install IIS features for ASP.NET via ServerManagerCmd.exe, use the following command line:
ServerManagerCmd-install Web-Server
ServerManagerCmd-install Web-ASP-Net
ServerManagerCmd-install Web-Net-Ext
ServerManagerCmd-install Web-Filtering
ServerManagerCmd-install Web-ISAPI-Filter
ServerManagerCmd-install Web-ISAPI-Ext
It is possible to install support for .NET Extensibility and managed
modules without installing support for ASP.NET. Using the IIS .NET
Extensibility feature, developers can build solutions that add value for
all application components, such as custom authentication schemes,
monitoring and logging, security filtering, load balancing, content
To install IIS features for Managed Modules from the Vista/Windows
Server 2008 setup user interface, select the following IIS features by
UI name (in addition to features for static content):
To install IIS features for Managed Modules along with features for
Static Content Web Server via pkgmgr.exe, use the following command
line:
Start/w pkgmgr /iu:IIS-WebServerRole;IIS-WebServer;IIS-CommonHttpFeatures;IIS-StaticContent;IIS-DefaultDocument;IIS-DirectoryBrowsing;IIS-HttpErrors;IIS-ApplicationDevelopment;IIS-NetFxExtensibility;IIS-ISAPIExtensions;IIS-ISAPIFilter;IIS-HealthAndDiagnostics;IIS-HttpLogging;IIS-LoggingLibraries;IIS-RequestMonitor;IIS-Security;IIS-RequestFiltering;IIS-HttpCompressionStatic;IIS-WebServerManagementTools;IIS-ManagementConsole;WAS-WindowsActivationService;WAS-ProcessModel;WAS-NetFxEnvironment;WAS-ConfigurationAPI
To install IIS features for Managed Modules via ServerManagerCmd.exe, use the following command line:
The widely used classic ASP workload for serving server side scripted
.asp pages builds on the static content workload by adding modules for
ASP, Request Filtering, and ISAPI Extensions.
To install IIS features for Classic ASP from the Vista/Windows Server
2008 setup user interface, select the following IIS features by UI name
(in addition to features for static content):
ASP
IIS-ASP
To install IIS features for Classic ASP along with features for
Start/w pkgmgr /iu:IIS-WebServerRole;IIS-WebServer;IIS-CommonHttpFeatures;IIS-StaticContent;IIS-DefaultDocument;IIS-DirectoryBrowsing;IIS-HttpErrors;IIS-ApplicationDevelopment;IIS-ASP;IIS-ISAPIExtensions;IIS-HealthAndDiagnostics;IIS-HttpLogging;IIS-LoggingLibraries;IIS-RequestMonitor;IIS-Security;IIS-RequestFiltering;IIS-HttpCompressionStatic;IIS-WebServerManagementTools;IIS-ManagementConsole; WAS-WindowsActivationService;WAS-ProcessModel;WAS-NetFxEnvironment;WAS-ConfigurationAPI
To install IIS features for Classic ASP via ServerManagerCmd.exe, use the following command line:
ServerManagerCmd-install Web-ASP
FastCGI provides a high-performance alternative to the Common Gateway
Interface (CGI), a standard way of interfacing external applications
with Web servers that has been supported as part of the IIS feature-set
since the very first release.
FastCGI overcomes the performance penalty of traditional CGI by
re-using CGI processes to service subsequent requests, while continuing
to ensure single request concurrency. For more information on how
To install IIS features for CGI and Fast CGI from the Vista/Windows
CGI
IIS-CGI
To install IIS features for CGI and FastCGI along with features for
Start/w pkgmgr /iu:IIS-WebServerRole;IIS-WebServer;IIS-CommonHttpFeatures;IIS-StaticContent;IIS-DefaultDocument;IIS-DirectoryBrowsing;IIS-HttpErrors;IIS-ApplicationDevelopment;IIS-CGI;IIS-HealthAndDiagnostics;IIS-HttpLogging;IIS-LoggingLibraries;IIS-RequestMonitor;IIS-Security;IIS-RequestFiltering;IIS-HttpCompressionStatic;IIS-WebServerManagementTools;IIS-ManagementConsole; WAS-WindowsActivationService;WAS-ProcessModel;WAS-NetFxEnvironment;WAS-ConfigurationAPI
To install IIS features for CGI and FastCGI via ServerManagerCmd.exe, use the following command line:
ServerManagerCmd-install Web-CGI
As a developer or one who is just evaluating IIS you may simply just
want to install all 40 of the IIS features: This will certainly assure
that you're not missing anything; but realistically, even in a
development environment there are advantages to limiting your install to
just the features needed for your intended application. Doing your
development on a partial install of IIS will assure that you have an
understanding of your application's IIS module dependencies. It may also
be true that the target servers that your IIS applications will be
deployed on will not be configured with a full install. Matching the IIS
install on your development machine to that of your target hosting
machine will assure your application can run as expected when deployed.
To install all IIS features from the Vista/Windows Server 2008 setup
user interface, select the all IIS features displayed in the setup UI.
To install all IIS features via pkgmgr.exe, use the following command
start /w pkgmgr /iu:IIS-WebServerRole;IIS-WebServer;IIS-CommonHttpFeatures;IIS-StaticContent;IIS-DefaultDocument;IIS-DirectoryBrowsing;IIS-HttpErrors;IIS-HttpRedirect;IIS-ApplicationDevelopment;IIS-ASPNET;IIS-NetFxExtensibility;IIS-ASP;IIS-CGI;IIS-ISAPIExtensions;IIS-ISAPIFilter;IIS-ServerSideIncludes;IIS-HealthAndDiagnostics;IIS-HttpLogging;IIS-LoggingLibraries;IIS-RequestMonitor;IIS-HttpTracing;IIS-CustomLogging;IIS-ODBCLogging;IIS-Security;IIS-BasicAuthentication;IIS-WindowsAuthentication;IIS-DigestAuthentication;IIS-ClientCertificateMappingAuthentication;IIS-IISCertificateMappingAuthentication;IIS-URLAuthorization;IIS-RequestFiltering;IIS-IPSecurity;IIS-Performance;IIS-HttpCompressionStatic;IIS-HttpCompressionDynamic;IIS-WebServerManagementTools;IIS-WebServerManagementTools;IIS-ManagementConsole;IIS-ManagementScriptingTools;IIS-ManagementService;IIS-IIS6ManagementCompatibility;IIS-Metabase;IIS-WMICompatibility;IIS-LegacyScripts;IIS-LegacySnapIn;IIS-FTPPublishingService;IIS-FTPServer;IIS-FTPManagement;WAS-WindowsActivationService;WAS-ProcessModel;WAS-NetFxEnvironment;WAS-ConfigurationAPI
To install all IIS features via ServerManagerCmd.exe, use the following command line:
ServerManagerCmd-install Web-Server-a
The default static content workload includes HTTP logging and Request
Monitor features for logging requests and monitoring request execution,
but there are additional IIS 7.0 features you can use to enhance IIS
logging and tracing capabilities:
Tracing
Custom Logging
ODBC Logging
Of these features, Tracing provides a powerful way new to debug and
diagnose IIS application issues in production environments as well as in
) The Custom Logging and ODBC Logging features exist for IIS 6.0
compatibility and you should only need to install them if you have
existing IIS 6.0 that take advantage of these features.
To install the IIS Tracing feature from the Vista/Windows Server 2008
setup user interface, select the following IIS features by UI name (in
addition to features for static content):
To install IIS features for Tracing along with features for Static
Content Web Server via pkgmgr.exe, use the following command line:
Start/w pkgmgr /iu:IIS-WebServerRole;IIS-WebServer;IIS-CommonHttpFeatures;IIS-StaticContent;IIS-DefaultDocument;IIS-DirectoryBrowsing;IIS-HttpErrors;IIS-HealthAndDiagnostics;IIS-HttpLogging;IIS-LoggingLibraries;IIS-HttpTracing;IIS-Security;IIS-RequestFiltering;IIS-HttpCompressionStatic;IIS-WebServerManagementTools;IIS-ManagementConsole; WAS-WindowsActivationService;WAS-ProcessModel;WAS-NetFxEnvironment;WAS-ConfigurationAPI
To install IIS features for Tracing via ServerManagerCmd.exe, use the following command line:
ServerManagerCmd-install Web-Http-Tracing
IIS always includes support for anonymous authentication, no special
setup actions need be specified to get this support. If you do not want
to allow anonymous authentication it can be disabled from the Management
Console. In addition to anonymous authentication, IIS supports many
optional authentication and authorization mechanisms to allow you to
best secure your web sites.
To install IIS features for authentication from the Vista/Windows
Server 2008 setup user interface, select among following IIS features by
Basic Authentication
IIS-BasicAuthentication
Windows Authentication
IIS-WindowsAuthentication
Digest Authentication
IIS-DigestAuthentication
Client Certificate Mapping Authentication
IIS-ClientCertificateMappingAuthentication
IIS Client Certificate Mapping Authentication
IIS-IISCertificateMappingAuthentication
To install IIS features for authentication along with features for
Start/w pkgmgr /iu:IIS-WebServerRole;IIS-WebServer;IIS-CommonHttpFeatures;IIS-StaticContent;IIS-DefaultDocument;IIS-DirectoryBrowsing;IIS-HttpErrors;IIS-HealthAndDiagnostics;IIS-HttpLogging;IIS-LoggingLibraries;IIS-RequestMonitor;IIS-Security;IIS-BasicAuthentication;IIS-WindowsAuthentication;IIS-DigestAuthentication;IIS-ClientCertificateMappingAuthentication;IIS-IISCertificateMappingAuthentication;IIS-RequestFiltering;IIS-HttpCompressionStatic;IIS-WebServerManagementTools;IIS-ManagementConsole; WAS-WindowsActivationService;WAS-ProcessModel;WAS-NetFxEnvironment;WAS-ConfigurationAPI
To install IIS features for authentication via ServerManagerCmd.exe, use the following command line:
ServerManagerCmd-install Web-Basic-Auth
ServerManagerCmd-install Web-Windows-Auth
ServerManagerCmd-install Web-Digest-Auth
ServerManagerCmd-install Web-Client-Auth
ServerManagerCmd-install Web-Cert-Auth
To install IIS features for authorization from the Vista/Windows
URL Authorization
IIS-URLAuthorization
IP Security
IIS-IPSecurity
Note: The Request Filtering feature is part of the
default install, and should only be excluded from your installations
after you consider all security issues related to this feature.
To install IIS features for authorization along with features for
Start/w pkgmgr /iu:IIS-WebServerRole;IIS-WebServer;IIS-CommonHttpFeatures;IIS-StaticContent;IIS-DefaultDocument;IIS-DirectoryBrowsing;IIS-HttpErrors;IIS-HealthAndDiagnostics;IIS-HttpLogging;IIS-LoggingLibraries;IIS-RequestMonitor;IIS-Security;IIS-URLAuthorization;IIS-RequestFiltering;IIS-IPSecurity;IIS-HttpCompressionStatic;IIS-WebServerManagementTools;IIS-ManagementConsole; WAS-WindowsActivationService;WAS-ProcessModel;WAS-NetFxEnvironment;WAS-ConfigurationAPI
To install IIS features for authorization via ServerManagerCmd.exe, use the following command line:
ServerManagerCmd-install Web-Url-Auth
ServerManagerCmd-install Web-IP-Security
The default static content workload includes the IIS Management
Console, which can be used to manage IIS on your local machine. The
Management Console can also be used to manage IIS servers remotely if
those servers are configured to accept connections from remote IIS
Management Consoles.
Installing only the IIS Management Console will give you the ability
to manage IIS on other servers that have the Remote Management Service
installed.
To install the Management Client only without any IIS web Server or
FTP Server features from the Vista/Windows Server 2008 setup user
interface, select the following IIS features by UI name (in addition to
features for static content):
IIS- ManagementConsole
To install IIS features for Management Console along with features
for Static Content Web Server via pkgmgr.exe, use the following command
Start/w pkgmgr /iu:IIS-WebServerRole;IIS-WebServer;IIS-CommonHttpFeatures;IIS-StaticContent;IIS-DefaultDocument;IIS-DirectoryBrowsing;IIS-HttpErrors; IIS-HealthAndDiagnostics;IIS-HttpLogging;IIS-LoggingLibraries;IIS-RequestMonitor;IIS-Security;IIS-RequestFiltering;IIS-HttpCompressionStatic;IIS-WebServerManagementTools;IIS-ManagementConsole;WAS-WindowsActivationService;WAS-ProcessModel;WAS-NetFxEnvironment;WAS-ConfigurationAPI
To install IIS features for Management Console via ServerManagerCmd.exe, use the following command line:
ServerManagerCmd-install Web-Mgmt-Console
Installing the IIS Remote Management Service will allow an IIS server
to be managed remotely by IIS Management Consoles on other computers.
To install the IIS Management Service from the Vista/Windows Server
Management Service
IIS-ManagementService
To install IIS Management Service along with features for Static
Start/w pkgmgr /iu:IIS-WebServerRole;IIS-WebServer;IIS-CommonHttpFeatures;IIS-StaticContent;IIS-DefaultDocument;IIS-DirectoryBrowsing;IIS-HttpErrors; IIS-HealthAndDiagnostics;IIS-HttpLogging;IIS-LoggingLibraries;IIS-RequestMonitor;IIS-Security;IIS-RequestFiltering;IIS-HttpCompressionStatic;IIS-WebServerManagementTools;IIS-ManagementConsole;IIS-ManagementService;WAS-WindowsActivationService;WAS-ProcessModel;WAS-NetFxEnvironment;WAS-ConfigurationAPI
To install IIS Management Service via ServerManagerCmd.exe, use the following command line:
ServerManagerCmd-install Web-Mgmt-Service
IIS provides a configuration store called ApplicationHost.config with
a set of management APIs. In order to maintain compatibility with
existing applications and scripts that use ABO or ADSI to configure IIS,
IIS provides a complete metabase compatibility layer that implements
the ABO and ADSI APIs and maps these APIs to the new
ApplicationHost.config data store. In addition to the Metabase
compatibility feature for ABO, you can also install IIS 6.0 Metabase
compatibility for WMI scripting and, the IIS 6.0 scripting tools. To
To install the Metabase Compatibility from the Vista/Windows Server
IIS 6 Metabase Compatibility
IIS-Metabase
IIS 6 WMI Compatibility
IIS-WMICompatibility
IIS 6 Scripting Tools
IIS-LegacyScripts
To install IIS Metabase Compatibility along with features for Static
Start/w pkgmgr /iu:IIS-WebServerRole;IIS-WebServer;IIS-CommonHttpFeatures;IIS-StaticContent;IIS-DefaultDocument;IIS-DirectoryBrowsing;IIS-HttpErrors; IIS-HealthAndDiagnostics;IIS-HttpLogging;IIS-LoggingLibraries;IIS-Security;IIS-RequestFiltering;IIS-HttpCompressionStatic;IIS-WebServerManagementTools;IIS-ManagementConsole;IIS-IIS6ManagementCompatibility;IIS-Metabase;IIS-WMICompatibility; IIS-LegacyScripts;WAS-WindowsActivationService;WAS-ProcessModel;WAS-NetFxEnvironment;WAS-ConfigurationAPI
To install IIS features for Metabase via ServerManagerCmd.exe, use the following command line:
ServerManagerCmd-install Web-Metabase
ServerManagerCmd-install Web-WMI
ServerManagerCmd-install Web-Lgcy-Scripting
IIS 7.0 and above provides the IIS 6.0 MMC snap-in to allow you to
use your Vista/Windows Server 2008 machines to remotely administer
existing IIS 6.0 server on Windows Server 2003 as well as FTP servers on
Windows Server 2008. The IIS 6 Management Console cannot be used to
manage IIS 7.0 and above Servers.
To install the IIS 6.0 Management Console from the Vista/Windows
IIS 6 Management Console
IIS-LegacySnapIn
To install IIS 7.0 and above features for IIS 6.0 Management Console
along with features for Static Content Web Server via pkgmgr.exe, use
the following command line:
Start/w pkgmgr /iu:IIS-WebServerRole;IIS-WebServer;IIS-CommonHttpFeatures;IIS-StaticContent;IIS-DefaultDocument;IIS-DirectoryBrowsing;IIS-HttpErrors; IIS-HealthAndDiagnostics;IIS-HttpLogging;IIS-LoggingLibraries;IIS-RequestMonitor;IIS-Security;IIS-RequestFiltering;IIS-HttpCompressionStatic;IIS-WebServerManagementTools;IIS-ManagementConsole;IIS6ManagementCompatibility;IIS-LegacySnapIn;WAS-WindowsActivationService;WAS-ProcessModel;WAS-NetFxEnvironment;WAS-ConfigurationAPI
To install IIS 7.0 and above features for IIS 6.0 management via ServerManagerCmd.exe, use the following command line:
ServerManagerCmd-install Web-Lgcy-Mgmt-Console
In this article we saw how to install IIS 7.0 and above to support
specific workloads, and how these workloads can be combined and
modified. We also looked at adding IIS 7.0 and above features for
tracing, security, IIS 6.0 compatibility, local and remote management,
and IIS 6.0 management. After installing IIS 7.0 and above with the
Server Manager Tool you can then use the Web Server Role Page for quick
view of IIS 7.0 and above status, and use the IIS 7.0 and above
management Console to configure the IIS features you installed.