public void CreateVirtualDirectory(string nameDirectory, string realPath)
{
System.DirectoryServices.DirectoryEntry oDE;
System.DirectoryServices.DirectoryEntries oDC;
System.DirectoryServices.DirectoryEntry oVirDir;
try
{
oDE = new DirectoryEntry("IIS://" + this._serverName + "/W3SVC/1/Root");
//Get Default Web Site
oDC = oDE.Children;
//Add row
oVirDir = oDC.Add(nameDirectory, oDE.SchemaClassName.ToString());
//Commit changes for Schema class File
oVirDir.CommitChanges();
//Create physical path if it does not exists
if (!Directory.Exists(realPath))
{
Directory.CreateDirectory(realPath);
}
//Set virtual directory to physical path
oVirDir.Properties["Path"].Value = realPath;
//Set read access
oVirDir.Properties["AccessRead"][0] = true;
//Create Application for IIS Application (as for ASP.NET)
oVirDir.Invoke("AppCreate", true);
oVirDir.Properties["AppFriendlyName"][0] = nameDirectory;
//Save all the changes
oVirDir.CommitChanges();
}
catch (Exception ex)
{
throw ex;
}
}
This above function work fine _serverName = "localhost" but this always create virtual directory in Default Web Site in IIS. While I have another sample site created with name MySite on localhost:8080. so when I put _serverName = "localhost:8080" it gives me error.
