WEBSITE

IIS 7.0 Manager Customization and Extensibility

8/27/2012 1:30:20 AM

IIS 7.0 Manager Customization and Extensibility

IIS Manager is not just an application, but rather an extensible platform that developers can use to plug in their own features to manage custom settings and applications. Developers can change the UI, remove existing features, and add new administration features.

Direct from the Source: IIS Manager—Built on Top of Public Extensibility API

During the design phase of the new IIS Manager, we decided to make extensibility a core feature and to build IIS Manager as a real platform so that not only could we extend and enhance its functionality, but third-party developers could as well. To make sure we were designing a flexible API, we decided to implement all the features using this API so that none of our features would be a special case inside the product. That’s why there are several dlls in the IIS installation, such as Microsoft.Web.Management.Iis.dll and Microsoft.Web.Management.Aspnet.dll. By following these strict guidelines of building the API outside the core framework, we’ve made sure that anything that we built others could enhance or even replace with their own implementation. This of course was a challenging process, but at the same time, it made our platform flexible enough to ensure that additional IIS features such as FTP, WebDAV, and others will have a place inside the new IIS Manager.

Carlos Aguilar Mares

Senior Development Lead, IIS

IIS 7.0 ships with an application programming interface (API) that enables developers to change the IIS Manager UI and to manage custom settings and applications on the server. For example, this API provides the extensibility mechanism to develop UI features represented as list pages, property grids, and dialog pages; a custom-designed Actions pane; wizards and dialog boxes; and the ability to add custom nodes to the Connections pane.

IIS Manager is designed to have distributed client-server architecture. In addition, IIS Manager has a modular infrastructure in which every UI feature is its own entity. Each feature follows the client-server paradigm. This architecture of IIS Manager separates the logic that manipulates server settings from the presentation code, which displays these settings in a user-friendly manner for each of the UI features.

IIS 7.0 Management and Administration API

The API is located within two assemblies that provide a framework for modifying IIS Manager UI and developing new features to manage custom applications on the server. These assemblies are as follows:

  • Microsoft.Web.Management.dll. This assembly provides the framework that enables developers to create new UI features and make modifications to IIS Manager. It provides the base classes and other functionality that enables the newly developed extensions to appear with a look and feel identical to the built-in IIS and ASP.NET features. It does not support changing the settings on the server.

  • Microsoft.Web.Administration.dll. This assembly provides the framework for developers to change settings on the server. It gives developers a programmatic way to access and update the Web server configuration and administration information. It does not support adding any UI extensibility or functionality. In fact, most features in IIS Manager use this API to manage configuration settings on the server.

Each IIS Manager feature has two components:

  • A client-side module that provides UI experience

  • A server-side module service that manipulates the settings on the server

This architecture is illustrated in Figure 1. IIS Manager extensions must follow this architecture that is enforced by the base classes provided within the API.

The first step to deploy the new IIS extension is to install its client and server components in the global assembly cache (GAC) on the server. The second step is to register the new extension with IIS Manager. Each extension has to be individually registered with IIS Manager. IIS Manager is built on top of configuration system extensibility that enables custom functionality to be easily added.

IIS Manager uses a special file called administration.config that defines IIS Manager configuration. The administration.config file is located on the server in the folder %SystemRoot%\System32\Inetsrv\Config. Administration.config is an XML configuration file that includes a list of IIS Manager built-in features and extensions. On IIS Manager startup, this file is checked to determine what features should be displayed in IIS Manager. If IIS Manager is connecting remotely, then the Web Management Service compares the module providers available on the server with the module providers available on the client. If a new extension is available on the server, the client is prompted to download and install that extension.

An IIS Manager feature client server architecture.

Figure 1. An IIS Manager feature client server architecture.

The <moduleProviders> section in the administration.config file defines all IIS Manager extensions that are registered on the system. To register an extension, you need to add the fully qualified type name of that extension module provider to the <moduleProviders> section and add the module name to the <modules> section. Depending on the desired extension scope, you may need to add the corresponding module name to the appropriate <location path> section that will define the sites and applications where this extension will appear in IIS Manager. The following excerpt from the administration.config file shows a built-in module provider for the DefaultDocument module in the <moduleProviders> section and the module DefaultDocument in the <modules> section with the root location path of "." that makes it available to all sites and applications on the server.

<moduleProviders>
    <!-- Server Modules-->
    <add name="DefaultDocument"
type="Microsoft.Web.Management.Iis.DefaultDocument
DefaultDocumentModuleProvider, Microsoft.Web.Management.Iis,
Version=7.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />

</moduleProviders>
<!-- For all Sites -->
<location path=".">
    <modules>
        <add name="DefaultDocument" />
    ...
    </modules>
</location>

After you’ve registered the extension, on the next IIS Manager startup, the client will be prompted to download and install the client component of that extension.

Remote Administration

In IIS Manager, remote connections are not available by default. To manage IIS 7.0 running on Windows Server 2008 remotely, you need to set up the client machines and configure the server for remote administration.

To administer IIS 7.0 running on Windows Server 2008 remotely from client machines running Windows Vista Service Pack 1 (SP1), Windows Server 2003 SP1, and Windows XP SP2, you need to install IIS Manager on these client machines and then connect to sites and applications on the server you need to manage. You can download IIS Manager for these operating systems from http://iis.net/downloads.

On the server, you must explicitly enable remote management of IIS 7.0 through IIS Manager. This is different than IIS 6.0, where management console remoting was through the MMC and was always enabled. For remote administration of IIS 7.0, Web Management Service (WMSvc) must be installed and running on the server, and remote connections to the service must be enabled.

Web Management Service is not installed by default—you need to install Web Management Service manually. During installation, you can specify the IP address and port number the service will listen on or accept the defaults: All Unassigned for the IP address, and 8172 for the port number. 

After you have installed Web Management Service, the Management Service Feature appears on the home page for the server in IIS Manager, and you can configure this feature to enable remote connections to service.

To enable remote connections, perform the following steps in IIS:

  1. Select the server node in the Connections pane. The server home page is displayed.

  2. Double-click the Management Service feature to open the Management Service feature page.

  3. In the Management Service feature page, in the Actions pane, click Stop to stop the service.

    Remote Administration
  4. Check the Enable Remote Connections check box. Doing so enables server administrators to connect remotely to the server, as well as to sites and applications.

    Note

    The setting that enables remoting is stored in the dword registry value EnableRemoteManagement under the registry key HKLM\SOFTWARE\Microsoft\WebManagement\Server.

  5. If you would like users without administrative privileges to manage sites and applications on this server, choose the type of identity credentials for these users. Configure other settings if needed, such as connections and logging options and IPv4 and domain restrictions. Click Apply in the Actions pane to save the changes and then click Start to start the service.

Other  
  •  IIS 7.0 : Using Command Line Tools - Microsoft.Web.Administration
  •  IIS 7.0 : Using Command Line Tools - Working with Failed Request Tracing
  •  IIS 7.0 : Using Command Line Tools - Working with Web Server Modules, Inspecting Running Worker Processes and Requests
  •  IIS 7.0 : Using Command Line Tools - Working with Configuration
  •  IIS 7.0 : Using Basic Verbs: List, Add, Set, Delete
  •  Java EE 6 : New features introduced in Servlet 3.0 (part 2)
  •  Java EE 6 : New features introduced in Servlet 3.0 (part 1)
  •  Java EE 6 : Servlet Development and Deployment - Persisting application data across requests
  •  IIS 7.0 : Using Command Line Tools - Getting Started with Appcmd (part 2) - Understanding Appcmd Output, Using Range Operators
  •  IIS 7.0 : Using Command Line Tools - Getting Started with Appcmd (part 1) - Appcmd Syntax
  •  
    Top 10
    Review : Sigma 24mm f/1.4 DG HSM Art
    Review : Canon EF11-24mm f/4L USM
    Review : Creative Sound Blaster Roar 2
    Review : Philips Fidelio M2L
    Review : Alienware 17 - Dell's Alienware laptops
    Review Smartwatch : Wellograph
    Review : Xiaomi Redmi 2
    Extending LINQ to Objects : Writing a Single Element Operator (part 2) - Building the RandomElement Operator
    Extending LINQ to Objects : Writing a Single Element Operator (part 1) - Building Our Own Last Operator
    3 Tips for Maintaining Your Cell Phone Battery (part 2) - Discharge Smart, Use Smart
    REVIEW
    - First look: Apple Watch

    - 3 Tips for Maintaining Your Cell Phone Battery (part 1)

    - 3 Tips for Maintaining Your Cell Phone Battery (part 2)
    VIDEO TUTORIAL
    - How to create your first Swimlane Diagram or Cross-Functional Flowchart Diagram by using Microsoft Visio 2010 (Part 1)

    - How to create your first Swimlane Diagram or Cross-Functional Flowchart Diagram by using Microsoft Visio 2010 (Part 2)

    - How to create your first Swimlane Diagram or Cross-Functional Flowchart Diagram by using Microsoft Visio 2010 (Part 3)
    Popular Tags
    Microsoft Access Microsoft Excel Microsoft OneNote Microsoft PowerPoint Microsoft Project Microsoft Visio Microsoft Word Active Directory Biztalk Exchange Server Microsoft LynC Server Microsoft Dynamic Sharepoint Sql Server Windows Server 2008 Windows Server 2012 Windows 7 Windows 8 Adobe Indesign Adobe Flash Professional Dreamweaver Adobe Illustrator Adobe After Effects Adobe Photoshop Adobe Fireworks Adobe Flash Catalyst Corel Painter X CorelDRAW X5 CorelDraw 10 QuarkXPress 8 windows Phone 7 windows Phone 8
    Visit movie_stars's profile on Pinterest.