• AppPoolService-IIS应用程序池辅助类(C#控制应用程序池操作)


    using System.Collections.Generic;
    using System.DirectoryServices;
    using System.Linq;
    using Microsoft.Web.Administration; //位于:C:WindowsSystem32inetsrvMicrosoft.Web.Administration.dll
    
    namespace Whir.Software.IISManager.IISManager
    {
        /// <summary>
        ///     IIS应用程序池辅助类
        /// </summary>
        public class AppPoolService
        {
            protected static string Host = "localhost";
    
            /// <summary>
            ///     取得所有应用程序池
            /// </summary>
            /// <returns></returns>
            public static List<string> GetAppPools()
            {
                var appPools = new DirectoryEntry(string.Format("IIS://{0}/W3SVC/AppPools", Host));
                return (from DirectoryEntry entry in appPools.Children select entry.Name).ToList();
            }
    
            /// <summary>
            ///     取得单个应用程序池
            /// </summary>
            /// <returns></returns>
            public static ApplicationPool GetAppPool(string appPoolName)
            {
                ApplicationPool app = null;
                var appPools = new DirectoryEntry(string.Format("IIS://{0}/W3SVC/AppPools", Host));
                foreach (DirectoryEntry entry in appPools.Children)
                {
                    if (entry.Name == appPoolName)
                    {
                        var manager = new ServerManager();
                        app = manager.ApplicationPools[appPoolName];
                    }
                }
                return app;
            }
    
            /// <summary>
            ///     判断程序池是否存在
            /// </summary>
            /// <param name="appPoolName">程序池名称</param>
            /// <returns>true存在 false不存在</returns>
            public static bool IsAppPoolExsit(string appPoolName)
            {
                bool result = false;
                var appPools = new DirectoryEntry(string.Format("IIS://{0}/W3SVC/AppPools", Host));
                foreach (DirectoryEntry entry in appPools.Children)
                {
                    if (entry.Name.Equals(appPoolName))
                    {
                        result = true;
                        break;
                    }
                }
                return result;
            }
    
            /// <summary>
            ///     删除指定程序池
            /// </summary>
            /// <param name="appPoolName">程序池名称</param>
            /// <returns>true删除成功 false删除失败</returns>
            public static bool DeleteAppPool(string appPoolName)
            {
                bool result = false;
                var appPools = new DirectoryEntry(string.Format("IIS://{0}/W3SVC/AppPools", Host));
                foreach (DirectoryEntry entry in appPools.Children)
                {
                    if (entry.Name.Equals(appPoolName))
                    {
                        try
                        {
                            entry.DeleteTree();
                            result = true;
                            break;
                        }
                        catch
                        {
                            result = false;
                        }
                    }
                }
                return result;
            }
    
            /// <summary>
            ///     创建应用程序池
            /// </summary>
            /// <param name="appPool"></param>
            /// <returns></returns>
            public static bool CreateAppPool(string appPool)
            {
                try
                {
                    if (!IsAppPoolExsit(appPool))
                    {
                        var appPools = new DirectoryEntry(string.Format("IIS://{0}/W3SVC/AppPools", Host));
                        DirectoryEntry entry = appPools.Children.Add(appPool, "IIsApplicationPool");
                        entry.CommitChanges();
                        return true;
                    }
                }
                catch
                {
                    return false;
                }
                return false;
            }
    
            /// <summary>
            ///     编辑应用程序池
            /// </summary>
            /// <param name="application"></param>
            /// <returns></returns>
            public static bool EditAppPool(ApplicationPool application)
            {
                try
                {
                    if (IsAppPoolExsit(application.Name))
                    {
                        var manager = new ServerManager();
                        manager.ApplicationPools[application.Name].ManagedRuntimeVersion = application.ManagedRuntimeVersion;
                        manager.ApplicationPools[application.Name].ManagedPipelineMode = application.ManagedPipelineMode;
                        //托管模式Integrated为集成 Classic为经典
                        manager.CommitChanges();
                        return true;
                    }
                }
                catch
                {
                    return false;
                }
                return false;
            }
        }
    }

  • 相关阅读:
    appium的log详细分析
    安卓版本6.0打开uiautomator报错
    wmware搬家
    Appium_Python_Api文档
    EF常用命令行
    Java学习----this和super(在继承中)
    Java学习----到底调用哪一个方法(多态)
    Java学习----方法的覆盖
    Java学习----对象间的继承
    Java学习----一个对象怎么调用另一个对象呢?
  • 原文地址:https://www.cnblogs.com/zhangqs008/p/3763801.html
Copyright © 2020-2023  润新知