[Sample of Apr 8th] Set IIS Web Virtual Directory Properties

 

Homepage image
Sample of the Day RSS Feed

Sample Download: https://code.msdn.microsoft.com/CSSetIISWebVirtualDirProper-cbe2c622

Today’s code sample demonstrates how to set the Application name and Path on Virtual Directory tab (Properties) in IIS 6 programmatically. We are using here System.DirectoryServices namespace. This namespace is used to manage Directory Services using ADSI, Active Directory Services Interface.  This ADSI Interface has the interfaces for IIS metabase.

The sample is written by Microsoft Support Escalation Engineer Shaleen Thapa.

imageYou can find more code samples that demonstrate the most typical programming scenarios by using Microsoft All-In-One Code Framework Sample Browser or Sample Browser Visual Studio extension. They give you the flexibility to search samples, download samples on demand, manage the downloaded samples in a centralized place, and automatically be notified about sample updates. If it is the first time that you hear about Microsoft All-In-One Code Framework, please watch the introduction video on Microsoft Showcase, or read the introduction on our homepage https://1code.codeplex.com/.

 

Introduction

This sample application demonstrates how to set the Application name and Path on Virtual Directory tab (Properties) in IIS 6 programmatically. We are using here System.DirectoryServices namespace. This namespace is used to manage Directory Services using ADSI, Active Directory Services Interface.  This ADSI Interface has the interfaces for IIS metabase.
 
However, you cannot perform the following tasks unless you are using Windows XP Professional with Service Pack 2 or Windows Server 2003 with Service Pack 1. Doing so results in errors like "The directory cannot report the number of properties":
 
Enumerating through a collection of properties
 
Setting binary properties
 
Adding entries to a property collection
 
Deleting entries from a property collection
 
Moving or copying metabase nodes

Configuring MIME types or IP security properties

Running the Sample

You can execute this sample by creating the exe via Visual Studio. Before calling this application, you must have IIS 6.0 installed on your machine. After you execute this program you should see that there is a Virtual directory created with the name you specified.
 
This sample concentrates on how to provide the Application Name however it is needed to set the Path name of the virtual directory under IIS.

Using the Code

You can use this project to set the Application name for a virtual directory in IIS. This application demonstrates how to use System.DirectoryServices to use ADSI interface for IIS. Once we bind to the root of the IIS metabase, we create the IIsWebVirtualDir schema object. Once we get this object we set the Path and the Application’s friendly name.

 string siteName = "HelloWorldSite"; 
string physicalPath = @"C:\HelloWorldSite"; 
  
//Using DirectoryEntry bind to the Root of the IIS metabase. 
using (DirectoryEntry rootEntry = new DirectoryEntry("IIS://localhost/W3SVC/1/Root")) 
{ 
    //Create your Web Virtual Directory 
    using (DirectoryEntry testDirectoryEntry = rootEntry.Children.Add(siteName, "IIsWebVirtualDir")) 
    { 
        //Closing & Disposing DirectoryEntry object 
        rootEntry.Close(); 
  
        //Give the physical path for the Virtual Directory 
        testDirectoryEntry.Properties["Path"][0] = physicalPath; 
  
        //Save back the changes back to the IIS metabase 
        testDirectoryEntry.CommitChanges(); 
  
        //We are going to set the Name of the Virtual Directory 
        //By setting it's AppFriendlyName property 
        testDirectoryEntry.Properties["AppFriendlyName"][0] = siteName; 
  
        //Save the changes back to the IIS metabase 
        testDirectoryEntry.CommitChanges(); 
  
        //Do a close on the DirectoryEntry object 
        testDirectoryEntry.Close(); 
    } 
} 

More Information

For more information on System.DirectoryServices for IIS Administrator, visit https://msdn.microsoft.com/en-us/library/ms525791(VS.90).aspx