G
Guest
I'm using the DirectoryServices class to try and create new virtual
directories in IIS.
Here's the code I'm using:
System.DirectoryServices.DirectoryEntry oDE;
System.DirectoryServices.DirectoryEntries oDC;
System.DirectoryServices.DirectoryEntry oVirDir;
string sIISPath = @"IIS:\\localhost\W3SVC\1\Root";
//Assuming it exists, we bind our DirectoryEntry object, oDE, to this root
using:
if (VirDirExists(sIISPath))
{
oDE = new System.DirectoryServices.DirectoryEntry(sIISPath);
//We obtain a collection of all of the children virtual directories under
this root object using:
oDC = oDE.Children;
//Add a new member to this collection and bind it to a new DirectoryEntry
object, oVirDir, thus creating a new
//virtual directory with:
oVirDir = oDC.Add(virDirName, oDE.SchemaClassName.ToString());
//Commit the changes to the IIS Metabase.
oVirDir.CommitChanges();
//Setting and Updating Any of the Properties on IIS
//We additionally need to assign a physical path to this new virtual
directory, using a straightforward
//property-setting approach:
oVirDir.Properties["Path"][0]= physicalPath;
oVirDir.Properties["DefaultDoc"][0] = "home_here.aspx";
oVirDir.Properties["AppFriendlyName"][0] = textBox1.Text.Trim();
oVirDir.Properties["CreateProcessAsUser"][0] = true;
oVirDir.CommitChanges();
This works fine in that it adds the entry to the default web site and set's
the appropriate properties. However, it does not 'create' the application.
You need to physically go into the virtual directory properties(in the IIS
snapin), go to the Virtual Directory tab, and click the <CREATE> button next
to the Application Name textbox in order to get the virtual directory to work
in IIS.
I can't seem to find an method that does this programatically in the
DirectoryServices class. Does any one knows what this would be or if there
is another way to create virtual directories programatically in IIS?
Thanks for your help
Paul
directories in IIS.
Here's the code I'm using:
System.DirectoryServices.DirectoryEntry oDE;
System.DirectoryServices.DirectoryEntries oDC;
System.DirectoryServices.DirectoryEntry oVirDir;
string sIISPath = @"IIS:\\localhost\W3SVC\1\Root";
//Assuming it exists, we bind our DirectoryEntry object, oDE, to this root
using:
if (VirDirExists(sIISPath))
{
oDE = new System.DirectoryServices.DirectoryEntry(sIISPath);
//We obtain a collection of all of the children virtual directories under
this root object using:
oDC = oDE.Children;
//Add a new member to this collection and bind it to a new DirectoryEntry
object, oVirDir, thus creating a new
//virtual directory with:
oVirDir = oDC.Add(virDirName, oDE.SchemaClassName.ToString());
//Commit the changes to the IIS Metabase.
oVirDir.CommitChanges();
//Setting and Updating Any of the Properties on IIS
//We additionally need to assign a physical path to this new virtual
directory, using a straightforward
//property-setting approach:
oVirDir.Properties["Path"][0]= physicalPath;
oVirDir.Properties["DefaultDoc"][0] = "home_here.aspx";
oVirDir.Properties["AppFriendlyName"][0] = textBox1.Text.Trim();
oVirDir.Properties["CreateProcessAsUser"][0] = true;
oVirDir.CommitChanges();
This works fine in that it adds the entry to the default web site and set's
the appropriate properties. However, it does not 'create' the application.
You need to physically go into the virtual directory properties(in the IIS
snapin), go to the Virtual Directory tab, and click the <CREATE> button next
to the Application Name textbox in order to get the virtual directory to work
in IIS.
I can't seem to find an method that does this programatically in the
DirectoryServices class. Does any one knows what this would be or if there
is another way to create virtual directories programatically in IIS?
Thanks for your help
Paul