• [原]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;
            }
        }
    }

    作者:a497785609 发表于2014-5-31 11:15:05 原文链接
    阅读:24 评论:0 查看评论
  • 相关阅读:
    c#扩展函数
    c# 正则匹配对称括号
    sqllocaldb 2016安装
    scrapy图片数据爬取
    Scrapy爬取全站数据并存储到数据库和文件中
    Scrapy基于终端指令的持久化存储
    nginx指定配置文件
    腾讯云安装python36
    Django部署腾讯云服务时候报错:SQLite 3.8.3 or later is required (found 3.7.17)
    flask打包下载zip文件
  • 原文地址:https://www.cnblogs.com/zhangqs008/p/3763828.html
Copyright © 2020-2023  润新知