internal static void CreateLegacyVDirs(string metabasePath, bool deleteObjectIfExists) { string webSiteRoot = IisUtility.GetWebSiteRoot(metabasePath); IList legacyVirtualDirectories = OwaVirtualDirectoryHelper.GetLegacyVirtualDirectories(); if (legacyVirtualDirectories != null) { ArrayList arrayList = new ArrayList(); arrayList.Add(new MetabaseProperty("HttpRedirect", "/owa")); string localPath = Path.Combine(ConfigurationContext.Setup.InstallPath, "ClientAccess\\owa"); OwaVirtualDirectoryHelper.CreatedLegacyVDirs.Clear(); foreach (object obj in legacyVirtualDirectories) { string text = (string)obj; if (deleteObjectIfExists && IisUtility.WebDirObjectExists(webSiteRoot, text)) { IisUtility.DeleteWebDirObject(webSiteRoot, text); } CreateVirtualDirectory createVirtualDirectory = new CreateVirtualDirectory(); createVirtualDirectory.Name = text; createVirtualDirectory.Parent = webSiteRoot; createVirtualDirectory.LocalPath = localPath; createVirtualDirectory.CustomizedVDirProperties = arrayList; createVirtualDirectory.Initialize(); createVirtualDirectory.Execute(); OwaVirtualDirectoryHelper.CreatedLegacyVDirs.Add(text); } } }
protected virtual bool CreateToMetabase() { bool result = false; T dataObject = this.DataObject; int num = dataObject.MetabasePath.LastIndexOf('/'); T dataObject2 = this.DataObject; string text = dataObject2.MetabasePath.Substring(0, num); T dataObject3 = this.DataObject; string text2 = dataObject3.MetabasePath.Substring(num + 1); if (!this.FailOnVirtualDirectoryAlreadyExists()) { T dataObject4 = this.DataObject; if (IisUtility.Exists(dataObject4.MetabasePath, "IIsWebVirtualDir")) { IisUtility.DeleteWebDirObject(text, text2); } } CreateVirtualDirectory createVirtualDirectory = new CreateVirtualDirectory(); createVirtualDirectory.Name = text2; createVirtualDirectory.Parent = text; createVirtualDirectory.LocalPath = this.Path; createVirtualDirectory.ApplicationPool = this.AppPoolId; createVirtualDirectory.AppPoolIdentityType = this.AppPoolIdentityType; createVirtualDirectory.AppPoolManagedPipelineMode = this.AppPoolManagedPipelineMode; createVirtualDirectory.CustomizedVDirProperties = this.CustomizedVDirProperties; if (!string.IsNullOrEmpty(createVirtualDirectory.ApplicationPool) && this.LimitMaximumMemory) { ulong totalPhysicalMemory = new ComputerInfo().TotalPhysicalMemory; createVirtualDirectory.MaximumPrivateMemory = (long)(totalPhysicalMemory / 100UL * 80UL / 1024UL); } createVirtualDirectory.Initialize(); createVirtualDirectory.Execute(); result = true; string parent = string.Format("{0}/{1}", text, text2); ListDictionary childVirtualDirectories = this.ChildVirtualDirectories; if (childVirtualDirectories != null) { foreach (object obj in childVirtualDirectories.Keys) { string text3 = (string)obj; CreateVirtualDirectory createVirtualDirectory2 = new CreateVirtualDirectory(); createVirtualDirectory2.Name = text3; createVirtualDirectory2.Parent = parent; createVirtualDirectory2.CustomizedVDirProperties = (ICollection)childVirtualDirectories[text3]; createVirtualDirectory2.LocalPath = (string)IisUtility.GetIisPropertyValue("Path", (ICollection)childVirtualDirectories[text3]); createVirtualDirectory2.Initialize(); createVirtualDirectory2.Execute(); } } return(result); }
protected override void DeleteFromMetabase() { string webSiteRoot = IisUtility.GetWebSiteRoot(base.DataObject.MetabasePath); IList legacyVirtualDirectories = OwaVirtualDirectoryHelper.GetLegacyVirtualDirectories(); if (legacyVirtualDirectories != null) { foreach (object obj in legacyVirtualDirectories) { string name = (string)obj; if (IisUtility.WebDirObjectExists(webSiteRoot, name)) { IisUtility.DeleteWebDirObject(webSiteRoot, name); } } } base.DeleteFromMetabase(); }
protected override void DeleteFromMetabase() { base.DeleteFromMetabase(); string webSiteRoot = IisUtility.GetWebSiteRoot(this.DataObject.MetabasePath); IList createdLegacyVDirs = OwaVirtualDirectoryHelper.CreatedLegacyVDirs; if (createdLegacyVDirs != null) { foreach (object obj in createdLegacyVDirs) { string name = (string)obj; if (IisUtility.WebDirObjectExists(webSiteRoot, name)) { IisUtility.DeleteWebDirObject(webSiteRoot, name); } } OwaVirtualDirectoryHelper.CreatedLegacyVDirs.Clear(); } }
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) { } } }