Пример #1
0
        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);
                }
            }
        }
Пример #2
0
        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();
        }
Пример #4
0
        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)
                {
                }
            }
        }