I have a method that creates a virtual directory. How can I set the .NET Framework to version 2 while I create the virtual directory?
My method looks like this so far:
private static void CreateVDir(string metabasePath, string vDirName, string physicalPath) { // metabasePath is of the form 'IIS://<servername>/<service>/<siteID>/Root[/<vdir>]' // for example 'IIS://localhost/W3SVC/1/Root'. // vDirName is of the form '<name>', for example, 'MyNewVDir'. // physicalPath is of the form '<drive>:\<path>', for example, 'C:\Inetpub\Wwwroot'. Console.WriteLine('\nCreating virtual directory {0}/{1}, mapping the Root application to {2}:', metabasePath, vDirName, physicalPath); DirectoryEntry site = new DirectoryEntry(metabasePath); string className = site.SchemaClassName; if ((className.EndsWith('Server')) || (className.EndsWith('VirtualDir'))) { DirectoryEntries vdirs = site.Children; DirectoryEntry newVDir = vdirs.Add(vDirName, (className.Replace('Service', 'VirtualDir'))); newVDir.Properties['Path'][0] = physicalPath; newVDir.Properties['AccessScript'][0] = true; // These properties are necessary for an application to be created. newVDir.Properties['AppFriendlyName'][0] = vDirName; newVDir.Properties['AppIsolated'][0] = '1'; newVDir.Properties['AppRoot'][0] = '/LM' + metabasePath.Substring(metabasePath.IndexOf('/', ('IIS://'.Length))); newVDir.CommitChanges(); Console.WriteLine(' Done.'); } else Console.WriteLine( ' Failed. A virtual directory can only be created in a site or virtual directory node.'); }
The ‘ScriptMaps’ property is where the configuration mappings get stored. That is, that’s where you can map *.aspx files to get processed by ASP.NET. An example is in Creating ISAPI Mappings Programmatically.