internal static void CreateOmaVDir(string metabasePath, VirtualDirectoryRole role) { MetabasePropertyTypes.AppPoolIdentityType appPoolIdentityType = MetabasePropertyTypes.AppPoolIdentityType.LocalSystem; if (IisUtility.WebDirObjectExists(metabasePath, "oma")) { string hostName = IisUtility.GetHostName(metabasePath); string appPoolRootPath = IisUtility.GetAppPoolRootPath(hostName); using (DirectoryEntry directoryEntry = IisUtility.FindWebObject(appPoolRootPath, "MSExchangeOWAAppPool", "IIsApplicationPool")) { IisUtility.SetProperty(directoryEntry, "AppPoolIdentityType", appPoolIdentityType, true); directoryEntry.CommitChanges(); } return; } CreateVirtualDirectory createVirtualDirectory = new CreateVirtualDirectory(); createVirtualDirectory.Name = "oma"; createVirtualDirectory.Parent = metabasePath; createVirtualDirectory.LocalPath = OwaVirtualDirectoryHelper.OwaCafePath; createVirtualDirectory.CustomizedVDirProperties = OwaVirtualDirectoryHelper.GetOmaVDirProperties(role); createVirtualDirectory.ApplicationPool = "MSExchangeOWAAppPool"; createVirtualDirectory.AppPoolIdentityType = appPoolIdentityType; createVirtualDirectory.AppPoolManagedPipelineMode = MetabasePropertyTypes.ManagedPipelineMode.Integrated; createVirtualDirectory.AppPoolQueueLength = 10; createVirtualDirectory.Initialize(); createVirtualDirectory.Execute(); }
public static void RemoveIsapiFilter(string parent, string name) { DirectoryEntry directoryEntry = null; DirectoryEntry directoryEntry2 = null; try { directoryEntry = IisUtility.FindWebObject(parent, "Filters", "IIsFilters"); directoryEntry2 = directoryEntry.Children.Find(name, string.Empty); directoryEntry.Children.Remove(directoryEntry2); directoryEntry.CommitChanges(); IisUtility.CommitMetabaseChanges(IisUtility.ServerFromWebSite(IisUtility.WebSiteFromMetabasePath(directoryEntry.Path))); } catch (WebObjectNotFoundException) { } catch (DirectoryNotFoundException) { if (directoryEntry == null || directoryEntry2 != null) { throw; } } catch (Exception innerException) { if (directoryEntry2 != null) { throw new IsapiFilterNotRemovedException(parent, name, innerException); } throw; } finally { if (directoryEntry2 != null) { directoryEntry2.Close(); } using (directoryEntry) { if (directoryEntry != null) { IsapiFilter.RemoveFilterFromLoadOrder(directoryEntry, name); } } } }
private void SaveLocalPath() { DirectoryEntry directoryEntry; try { directoryEntry = IisUtility.FindWebObject(this.Parent, this.Name, "IIsWebVirtualDir"); } catch (WebObjectNotFoundException) { return; } this.serverName = IisUtility.GetHostName(this.parent); if (WmiWrapper.IsDirectoryExisting(this.serverName, (string)directoryEntry.Properties["Path"].Value)) { this.localPath = (string)directoryEntry.Properties["Path"].Value; } }
public void Execute() { this.checkPoints.Clear(); this.SaveLocalPath(); this.SaveAppPoolName(); try { IisUtility.FindWebDirObject(this.Parent, this.Name); IisUtility.DeleteWebDirObject(this.Parent, this.Name); this.checkPoints.Push(DeleteVirtualDirectory.CheckPoint.VirtualDirectoryDeleted); } catch (WebObjectNotFoundException) { } string hostName = IisUtility.GetHostName(this.parent); if (this.applicationPool != null && IisUtility.IsSupportedIisVersion(hostName)) { if (!this.DeleteApplicationPool) { if (!IisUtility.ApplicationPoolIsEmpty(this.applicationPool, hostName)) { return; } } try { string appPoolRootPath = IisUtility.GetAppPoolRootPath(hostName); IisUtility.FindWebObject(appPoolRootPath, this.applicationPool, "IIsApplicationPool"); IisUtility.DeleteApplicationPool(hostName, this.applicationPool); this.checkPoints.Push(DeleteVirtualDirectory.CheckPoint.ApplicationPoolDeleted); } catch (WebObjectNotFoundException) { } } }