コード例 #1
0
        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();
        }
コード例 #2
0
        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);
                    }
                }
            }
        }
コード例 #3
0
        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;
            }
        }
コード例 #4
0
        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)
                {
                }
            }
        }