One of the core priorities we focused on when building IIS 7 was to enable a rich .NET extensibility model that provides developers with the hooks to easily plug-in and extend the web server. 

These extensibility hooks are provided in the web-server pipeline (enabling scenarios like the new IIS7 Bit Rate Throttler), within the configuration system (enabling developers to create new web.config schema settings), within the health monitoring system (enabling developers to add custom trace events), and within the admin tool (enabling developers to plug-in new admin UI modules).

We added these extensibility hooks so that anyone can easily extend and enhance the web server using .NET.  We also selfishly wanted them so that we can ship regular feature packs that add additional features to the core web server.

IIS 7 Admin Pack Preview 1 Released

Last week the IIS team shipped the first technical preview of some really cool administration modules that I think web developers will find super useful.  This preview adds several new features to the IIS7 Admin Tool:

  • Database Manager: Built-in SQL Server database management, including the ability to create, delete, and edit tables and indexes, create/edit SPROCs and execute custom queries.  Because it is integrated in the IIS administration tool it all works over HTTP/SSL – which means you can use the module to remotely manage your hosted applications (even with low-cost shared hosting accounts), without having to expose your database directly on the Internet.

  • Log Reports: Built-in report visualization with charting support for log files data.  Full range selection and custom chart creation is supported, as well as the ability to print or save reports.  Like the database manager you can use this module remotely over HTTP/SSL – which means it works in remote shared hosting scenarios.

  • Configuration Editor: This is a power module that provides complete control over editing all web.config settings within the admin tool.  You can configure it to track the changes you make using the UI and have it auto-generate configuration change scripts that you can then save and tweak to re-run later in an automated way.

  • Request Filtering UI: This admin module provides more control over the new request filtering feature in IIS7.  Check out Carlos’ blog post here for details on how to use it.

  • .NET Authorization: This admin module provides a custom authorization rules editor which allows you to more easily manage the ASP.NET <authorization> configuration section.

  • FastCGI UI: This admin module provides more support for editing all the new <fastCGI> settings (for when you use FastCGI modules with IIS7 like PHP).

Below are some screen-shots and simple walkthroughs of the Log Reporting and Database Manager administration UI modules:

Log Reporting Admin Module

Have you ever deployed a web application onto a server and wondered how much load it is getting?, what the average response time from the server is?, or whether many server errors are occurring (and if so on what URLs)?  All of these settings are carefully logged by IIS in a text based log file.  Today most people use command-line tools like the IIS Log Parser utility to query and analyze these files.

The IIS 7 Admin Pack and the new "IIS Reports" admin module now enable you to also query and chart your reports graphically within the IIS admin tool:

Out of the box the "IIS Reports" admin module comes with a bunch of pre-built logparser-based reports that you can easily run on your sites and applications:

Below is a simple graphical report we could pull up that looks at the HTTP status codes being returned by my "TestSite" application (note how we are using the "bar graph" visualization option):

Reports can optionally be filtered using a date range.  You can also push the print or save buttons within the report page to generate a printer or a local saved version of the report.

The IIS7 Admin Tool is a rich client application (built using WinForms) – but it does all of its remote access and work using HTTP based web-services that connect to the remote web-server.  This means it will work through firewalls, and a hoster does not need to open up ports in their network in order to enable it. 

Once a hoster installs the IIS 7 Admin Pack on their web-servers, remote customers managing their hosted sites using the IIS admin tool (which is built-into Vista and available as a download for Windows XP clients) will automatically be prompted to enable the IIS Reports admin module (the install of the client-side module is seamless).  They’ll then be able to use the reports module inside their admin tool to pull up reports for their remote hosted sites.

Note: hosters can optionally disable this feature if they want, or choose to restrict or customize the list of reports provided.  Hopefully most hosters will chose to just make this a standard feature of all IIS and ASP.NET plans they offer.

Database Manager Module

Have you ever deployed your application and database to a remote hosting provider and wanted to make a quick change to the database (but your hosting provider didn’t support accessing it using the SQL admin tool)?  Using the new "database manager" module within the IIS admin tool you can now remotely access your database and make changes to it using HTTP/SSL through the web-server. 

Just connect your IIS administration tool to your remote site and click the new "Database Manager" icon:

By default the Database Manager module will look at the <connectionStrings> section of your web application’s web.config file, and allow you to easily access any of the databases your hosted application is using. 

For example, below my TestSite application has a "NorthwindConnectionString" setting in the <connectionStrings> section of my web.config (which is why it shows up in my list of connection nodes).  When I click it I can view and edit my SPROCs and Table Schema (including indexes):

We could right-click on any table to edit the row data within it, or alternatively perform a custom SQL query to retrieve a custom set of data:

What is nice is that a hoster can easily enable all of the above database admin features for both dedicated and shared hosting plans (even when there are hundreds or thousands of customers on a single server).  Like all other modules in the admin tool, all communication between the rich client front-end and the backend at the hoster is done over HTTP/SSL based web-services (meaning it goes through firewalls and doesn’t require the hoster to open any new ports – nor expose the SQL server directly on the Internet). 

Hopefully this database administration module will just be a standard feature that all IIS hosters enable – which will make remote hosted data management much easier going forward.

Summary

Over time you’ll see even more admin UI modules be shipped in the IIS 7 Admin Pack and many more features enabled (Carlos, who runs the dev team building the admin tool, is actively asking for suggestions on what you’d like to see via his blog – so drop him a comment if you have a suggestion or want to provide some encouragement).

You can download the first technical preview of IIS 7 Admin Pack release here as well as learn more about it via the online documentation here.  The above modules work with both the IIS7 release in Vista SP1 as well as Windows Server 2008.

Hope this helps,

Scott