// Delete an application pool from IIS public static void DeleteApplicationPool(string domain, string username, string password, string appPoolName) { DirectoryEntry root = DirectoryEntryTool.GetRoot(DirectoryEntryRootType.AppPool, domain, username, password); root.Invoke("Delete", "IIsApplicationPool", appPoolName); root.CommitChanges(); }
// Delete a virtual directory public static void DeleteVirtualDirectory(string domain, string username, string password, string name) { DirectoryEntry root = DirectoryEntryTool.GetRoot(DirectoryEntryRootType.IIS, domain, username, password); DirectoryEntry vDir = DirectoryEntryTool.GetVirtualDirectory(domain, root, name); root.Children.Remove(vDir); root.CommitChanges(); }
// Create a virtual directory public static void CreateVirtualDirectory(string domain, string username, string password, string name, string path, string appPoolName) { DirectoryEntry root = DirectoryEntryTool.GetRoot(DirectoryEntryRootType.IIS, domain, username, password); DirectoryEntry vDir = DirectoryEntryTool.GetVirtualDirectory(domain, root, name); root.CommitChanges(); vDir.CommitChanges(); SaveProperties(vDir, name, path, appPoolName); }
// Get the names of all the virtual directories in IIS public static string[] GetVirtualDirectories(string domain, string username, string password) { List <string> vDirs = new List <string>(); DirectoryEntry root = DirectoryEntryTool.GetRoot(DirectoryEntryRootType.IIS, domain, username, password); foreach (DirectoryEntry vDir in root.Children) { vDirs.Add(vDir.Name); } return(vDirs.ToArray()); }
// Get the names of all the application pools in IIS public static string[] GetApplicationPools(string domain, string username, string password) { DirectoryEntry root = DirectoryEntryTool.GetRoot(DirectoryEntryRootType.AppPool, domain, username, password); List <string> appPools = new List <string>(); foreach (DirectoryEntry entry in root.Children) { appPools.Add(entry.Name); } return(appPools.ToArray()); }
// Gets the entry for a virtual directory public static DirectoryEntry GetVirtualDirectory(string domain, DirectoryEntry root, string name) { DirectoryEntry vDir = null; try { vDir = root.Children.Add(name, "IISWebVirtualDir"); } catch { string iisPath = DirectoryEntryTool.GetPath(DirectoryEntryRootType.IIS, domain); vDir = new DirectoryEntry(iisPath + "/" + name); } if (vDir == null) { throw new Exception("Could not create the virtual directory. Please check if you have enough access rights to complete this operation"); } return(vDir); }
// Create a new application pool in IIS public static void CreateApplicationPool(string domain, string username, string password, string appPoolName, bool enable32BitAppOnWin64, string dotnetRuntimeVersion) { DirectoryEntry root = DirectoryEntryTool.GetRoot(DirectoryEntryRootType.AppPool, domain, username, password); DirectoryEntry appPool = root.Invoke("Create", "IIsApplicationPool", appPoolName) as DirectoryEntry; if (appPool != null) { if (Globals.IISMajorVersionNumber > 6) { if (enable32BitAppOnWin64) { appPool.Properties["Enable32BitAppOnWin64"].Value = true; } else { appPool.Properties["Enable32BitAppOnWin64"].Value = false; } } if (Globals.IISMajorVersionNumber >= 7) { appPool.Properties["ManagedRuntimeVersion"].Value = dotnetRuntimeVersion; appPool.Properties["ManagedPipelineMode"].Value = 0; // Integrated } // Change the identity to LocalSystem, possible values: // 0 Local System // 1 Local Service // 2 Network Service // 3 Specific user appPool.InvokeSet("AppPoolIdentityType", new Object[] { 0 }); appPool.CommitChanges(); } root.CommitChanges(); }