Back in March we released the RC of IIS Database Manager – a tool which allows you to manage databases remotely through the IIS remote management infrastructure. The tool will automatically pick up database connection strings from your web.config file and make them available to you in the UI – you can also create ad-hoc connections too.

Over the next few days I’ll be posting overview of how to use some of the features of Database Manager and going into details of how it works where appropriate. In the meantime – if you have any ideas or suggestions for Database Manager feel free to post here – given that we already released the RC I can’t promise that they will make it into the release of this version but we’ll definitely take all suggestions and requests into account for future releases.

A few days ago we released the beta of IIS Search Engine Optimization Toolkit. The toolkit provides you with a number of features which can help you ensure that your site follows best practices with regards to how search engines crawl and parse your site as well as providing features for generating robots.txt files and sitemaps.

Carlos, the person behind the toolkit, has more information about the release here as well as a great video giving an overview of the Site Analysis feature of the toolkit here. ScottGu also has a walkthrough post up on his blog here.

Installing…

Use Web PI? Click on the image below…

Install Now with the Microsoft Web Platform Installer

Or from Microsoft download center:

Have fun!

It’s a bit strange that my “back-to-blogging” post is about a new version of Remote Manager considering that my last post, way back in March 2008 was a Remote Manager post as well (I have a good reason for not blogging since then which you’ll see at the end of this post :-)

What’s different?

The new version has some internal changes but the major new feature is the ability to remotely manage IIS 7 on Windows Server 2008 R2 machines as well as Windows Server 2008 machines. Another additional is the ability to use the tool from Windows 7.

Other then these changes everything is the same as before.

How do I get it?

Via Web PI:
Install Now with the Microsoft Web Platform Installer

The IIS.NET download center:

Microsoft.com download center:

 

What happened to Brian Delahunty’s Ramblings?

So, the reason that I haven’t blogged since my last post on the original Remote Manager is pretty straight forward – I changed position in Microsoft back in March 08 from a Program Manager on the IIS team to a Software Design Engineer on the IIS team and have been busy working on projects such as Web Deployment Tool, Database Manager, FTP 7.5, Smooth Streaming, Administration Pack, Advanced Logging, Dynamic IP Restrictions, and more, and of course on IIS 7.5 on Windows 7/Windows Server 2008 R2. More entries to come soon :-)

A few months back I posted[^] about the RC0 release of IIS Manager for Windows XP, 2k3 and Windows Vista. We've now released the RTM version which works with Windows 2008 (and we've removed the previous installs from www.iis.net).

Both Bob and Carlos have posted about this and both have some good information on their blogs (Carlos also has a video posted on some of the new features:

The new download URLs are:

Most of the instructions from my last post (Managing IIS 7 (RCO) from Windows XP, 2k3 and Vista[^]) should still apply to these installers although some of the screenshots may be a bit different.

Note: You will need Windows Vista SP1 in order for remote manager to install and work on Vista and you should also have the IIS Manager console installed (my last post covers to install the management console on Vista: http://blogs.iis.net/bdela/archive/2007/10/08/remote-administration-managing-iis-7-rco-from-windows-xp-2k3-and-vista.aspx#InstallingMgtConsole [^]

In my last post[^] I gave a quick overview of how to extend configuration. More specifically I covered extending configuration by adding new sections to configuration. One thing I also mentioned was that you can extending existing configuration sections too - that's what this post is about.

Extending the "sites" section
To show how to extend existing configuration I'm going to add two new attributes which are configurable for sites. We're going to an an owner and an ownerEmail attribute (a slightly less contrived example than the last post :-)

Note: do not do this on a production environment - you should never, ever, ever play around with extending configuration on a system that is in production use!

  1. In the %windir%\system32\inetsrv\config\schema directory, create a file called extendExisting.xml
  2. Add the following to the file:
    <configSchema>
     
    <sectionSchema name="system.applicationHost/sites">
       
    <collection addElement="site">
         
    <attribute name="owner" type="string" />
          <
    attribute name="ownerEmail" type="string" />
        </
    collection>
     
    </sectionSchema>
    </configSchema>

Ok, that's it - we've extended schema. Just remember, when extending the schema of an existing section, simply create a <sectionSchema> element and set the name attribute to be the same as an existing section. In the schema file above, we have defined a <sectionSchema> with a name of system.applicationHost/sites - this is the same as the sectionSchema name in the IIS_Schema.xml file in the Schema directory.

Testing the new attributes
Let's do a quick test to see if our new attributes are working. Run the following command to add an owner and ownerEmail to the "Default Web Site":

%windir%\system32\inetsrv\appcmd set site "Default Web Site" /owner:"Master Chief" /ownerEmail:"john117@contoso.com"

You can quickly check to see if the configuration has been applied by running the following:

%windir%\system32\inetsrv\appcmd list site "Default Web Site" /config

Your output should look something like the following:

<system.applicationHost>
 
<sites>
    ...
   
<site name="Default Web Site" id="1" siteOwner="Master Chief" siteOwnerEmail="john117@contoso.com"></site>
    ...
 
</sites>
</system.applicationHost>

Done :-)

More On Extensibility
This was a very short example of how to extend existing configuration sections. I'll be posting a few more entries about config system extensibility over the next few days and I'll cover extending config with code (including adding configuration 'methods') and a few other things.

My last post, IIS 7 Configuration: Basic Configuration Extensibility[^], covered the basics of configuration extensibility.

In the mean time, have a read of this Config System Extensibility article I published a while back: http://learn.iis.net/page.aspx/241/configuration-extensibility/

In IIS 7 we introduced a completely new configuration system which is used by the IIS runtime and all our administration tools. The configuration system is based on distributed XML files that contain the configuration for IIS, ASP.NET and other components; flexibility in the configuration system also allows for configuration to be set at a a number of levels including at the server, the site and the application level. Configuration at the site and application level coexists alongside ASP.NET configuration in web.config files.

One of my favourite and in my opinion one of the coolest features of our new config system is that the configuration system itself is extensible. You can quickly and easily extend config with your own attributes, collections, etc. and in fact we use config system extensibility on some of the downloadable modules we ship (e.g. FTP 7.0, and some more to come in the near future... you'll see them on IIS.NET in the next few days)

What do I mean by extensible?
Well, the config system is XML based and configuration definition exists in schema files which are located at %windir%\system32\inetsrv\config\schema. You can go there and look at the IIS_schema.xml file to see the schema definition of the IIS 7 config system. (As a side note, looking at the pre-installed files in the schema directory is a great way to learn more about configuration options in IIS 7.)

So, by extensibility I mean you have the ability to extend configuration with your own schema and get the full usage of the IIS 7 configuration APIs automatically. You can create new configuration sections, extend existing sections and you can even have configuration which is backed by a COM components...

Which begs the question... why?

Simple answer: Open up rscaext.xml and have a look there - we extended our own configuration system to provide additional functionality for you.

If you Install FTP 7 (download here[^] - note that you'll have to remove FTP 6 if it's installed) and then look at the new schema file it adds you'll see that we extend existing configuration sections and add news ones... the FTP runtime can make use of one of the plethora of ways to interact with the config system (appcmd.exe,  native config API, managed config api, etc.) There was no need to build a new config system or manually parse XML files.

Adding a new config section
Ok, so lets add a new config section - in this case, a very contrived one. We're going to add a new configuration section under system.webServer called Ireland with an attribute called nationalHoliday.

Note: do not do this on a production environment - you should never, ever, ever play around with extending configuration on a system that is in production use!

  1. In the %windir%\system32\inetsrv\config\schema directory, create a file called ireland.xml
  2. Add the following to the file:
    <configSchema>
     
    <sectionSchema name="system.webServer/ireland">
         
    <attribute name="nationalHoliday" type="string" />
      </
    sectionSchema>
    </configSchema>

    Next, we need to register our new configuration section so that the configuration system will recognize the schema as being valid and in use.

  3. Open the primary IIS configuration file, %windir%\system32\inetsrv\config\applicationHost.config.
  4. Look for the <configSections> section and add to <section name="ireland"/> under the system.webServer sectionGroup. You should have something like:
  5. <configSections>
      ...
     
    <sectionGroup name="system.webServer">
       
    <section name="ireland"/>
        ...
      </
    sectionGroup>
    </configSections>

That's it. Configuration has been extended. So, let's test it. Run the following command at the command line:

%windir%\system32\inetsrv\appcmd list config -section:system.webServer/ireland

You should get output of:

<system.webServer>
 
<ireland />
</
system.webServer>

Now, let's set the national holiday for the Default Web Site - just run:

appcmd set config "Default Web Site" -section:system.webServer/ireland /nationalHoliday:"St. Patricks Day"

Now, let's check the config for default web site:

%windir%\system32\inetsrv\appcmd list config "Default Web Site" -section:system.webServer/ireland

You're output should be something like:

<system.webServer>
 
<ireland nationalHoliday="St. Patricks Day" />
</
system.webServer>

 

Wohoo!!! We've just extended config with a very contrived example. You could now read that configuration using all of the config system APIs.

More On Extensibility
This was a very short example of how to do basic extensibility. I'll be posting a few more entries about config system extensibility over the next few days and I'll cover extending existing sections, extending config with code (including adding configuration 'methods') and a few other things.

In the mean time, have a read of this Config System Extensibility article I published a while back: http://learn.iis.net/page.aspx/241/configuration-extensibility/

September 24th saw the release of Windows Server 2008 RC0 and along with that comes the latest release of IIS 7.0. One of the great new features of IIS 7 is the  remote administration support built into InetMgr (the administration UI). The admin UI provides server administrators with some powerful features for enabling remote administration of the server and individual sites and application (both admins and non-admins alike).

I'll talk a lot more about Remote Administration in upcoming posts but for now I want to talk about and show you how to remotely administer IIS 7 (RC0) from Windows XP, 2k3 and Vista.

In order to remotely administer IIS 7 (RC0) from Windows XP, 2k3 or Vista you need to download and install the wonderfully named "Internet Information Services (IIS) 7.0 Manager", Remote Manager for short. Once downloaded and installed you'll be able to connect to and administer your IIS 7 installation.

This is a long post so I've included the following links to help:

Installing on Windows Vista

First things first - what do you need to have before you can get

  • You must have Windows Vista SP1 Beta installed
    You need to have an MSDN subscription or be a beta testers on connect.microsoft.com to get SP1 beta.
  • You must have the Microsoft .NET Framework version 2.0 or greater installed
  • You must have the Internet Information Services 7.0 Management Console installed (click here to see how to install)

Note: If at any stage during the install process you receive a User Access Control dialog you can continue the installation by clicking on Continue or Allow.

  1. Ensure that you meet the installation requirements for Windows Vista. Note that you have to install the IIS 7.0 Management Console (see how here).
  2. Download the Remote Manager installer from:
    32 bit (x86) - http://www.iis.net/go/1524
    64 bit (x64) - http://www.iis.net/go/1525
    If you are running the 64 bit version of Windows Vista ensure that you download the 64 bit installer. The 32 bit installer will not work on 64 bit Windows Vista.
  3. After downloading the installer simply double click on it to run it. 
  4. Click on Next to display the License agreement page. 
  5. To continue you must agree to the license agreement and then click on Next. 
  6. Select the location where you want to install Remote Manager and click on next to continue. 
  7. On the next screen simply click on Install to start the installation.

Using Remote Manager on Windows Vista

After installing Remote Manager on Windows Vista simply start the IIS Management Console as you did before. For example:

  1. Click on the Windows Start button to display the start menu
  2. Type "inetmgr.exe" into the search box and press enter. 

    If you are prompted by "User Access Control" simply click on Continue.
  3. When the Management Console starts you may notice that it is different to before.
    There is now a Start Page and additional options such as "Connect to Server", "Connect to Site" and so on.
    You can also connect to a Server, Site or Application by going to the File menu and selection the appropriate option. 
  4. After you select which type of connection you want to make a wizard will be displayed. Follow the wizard and enter the request details to make a remote connection.

Notes/Known Issues

The following issues are known for the RC0 release of Remote Manager:

  • The 32 bit version of Internet Information Services (IIS) 7.0 Manager will not function correctly on 64 bit version of Windows XP, Windows Server 2003 and Windows Vista. You should ensure that you install the 64 bit version Internet Information Services (IIS) 7.0 Manager on 64 bit operating systems.

Installing the Management Console on Windows Vista (a prerequisite for installing Remote Manager on Vista)

To install the Internet Information Services (IIS) 7.0 Management Console on Windows Vista simply follow the steps below:

    1. Click on the Windows Start button to display the start menu
    2. Type "optionalfeatures.exe" into the search box and press enter.
      (If you are prompted by "User Account Control" click on "Continue") 
    3. When the Windows Features dialog is finished loading expand the "Internet Information Services" node.
    4. Next, expand the "Web Management Tools" node.
    5. To install the IIS Management Console you need to check the checkbox beside "IIS Management Console" and click on OK.
      If the checkbox is already checked, the Management Console is already installed. 

Installing on Windows XP and Windows Server 2003

The following prerequisites must be fulfilled in order to install Remote Manager on Windows XP or Windows Server 2003:

  • You must have Windows XP Service Pack 2 installed if you are using Windows XP
  • You must have Windows Server 2003 Service Pack 1 installed if you are using Windows Server 2003
  • You must have the Microsoft .NET Framework version 2.0 or greater installed

Install instructions:

  1. Ensure that you meet the installation requirements for Windows XP and Windows Server 2003 above
  2. Download the Remote Manager installer from:
    32 bit (x86) - http://www.iis.net/go/1524
    64 bit (x64) - http://www.iis.net/go/1525
  3. After downloading the installer simply double click on it to run it. 
  4. Click on Next to display the License agreement page. 
  5. To continue you must agree to the license agreement and then click on Next. 
  6. Select the location where you want to install Remote Manager and click on next to continue. 
  7. On the next screen simply click on Install to start the installation.

Using Remote Manager on Windows XP and Windows Server 2003

To start Remote Manager after installation simply follow these instructions:

  1. Click on the Windows Start button to display the start menu
  2. Go to the Programs (or All Programs) menu and click on "Internet Information Services (IIS) 7.0 Manager" 
  3. After Remote Manager starts you can connect to a server, site or application by going to the site menu and clicking the appropriate options. 
  4. After you select which type of connection you want to make a wizard will be displayed. Follow the wizard and enter the request details to make a remote connection.

Notes/Known Issues

The following issues are known for the RC0 release of Remote Manager:

  • After opening Remote Manager the Start Page will be displayed. In the "Connection tasks" section of the start page there is a link called "Connect to localhost". Clicking on this link on Windows XP or Windows Server 2003 will cause a "Failed to connect" error to appear.
  • After opening the Remote Manager the local server connection node will appear on the treeview. Clicking on this node on Windows XP or Windows Server 2003 will cause a "Failed to connect" error to appear.

Well, I've finally gotten around to this. Since joining Microsoft and the IIS team I've been wanting to get this blog up and running but this small thing called "work" kept getting in the way. Today I've decided that enough is enough - time to get off my Irish ass and take 30 minutes to setup the blog, steal Robert Burkes template and write this post (along with a very annoying image rotator for the image at the top of the blog).

The obligatory "What can you expect from this blog"

Well, probably a lot of interesting (or maybe uninteresting) posts about IIS 7 and the occasional post about IIS 6 and before. Mainly things about administration and configuration (the two areas I own) and lots of stuff about server extensibility.

So, that's it. I'll get around to posting something interesting soon. I promise. Honest.

More Posts