热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

iis应用程序池监控方法实例

IIS有十几个应用地址池,总在不经意间停掉一个,下面的方法可以监控状态,方法很简单,就是对应用地址池遍历一遍,检查是否有未启动的应用地址池,有的话就执行启动命令

目的:公司服务器IIS有十几个应用地址池,总在不经意间停掉一个,停止线系统日志里会有一大堆警告日志,然后就停掉了,分析了好几次,网上有人说是某一个网站的问题应该查网站,但是网站又有那么多地址,谁知道从哪个请求开始就把应用地址池给弄挂掉了啊,白天还好随时有人看着服务器在,晚上停了就麻烦了,所有有了需求,自动监控应用地址池。其实方法很简单,就是定时对应用地址池遍历一遍,检查是否有未启动的应用地址池,有的话就执行启动命令。

代码如下:

///
        /// IIS应用地址池监控方法
        ///

        private void IISAppPools()
        {
            try
            {
                string entPath = "IIS://LOCALHOST/W3SVC/AppPools";
                while (true)
                {
                    DirectoryEntry rootEntry = new DirectoryEntry(entPath);
                    foreach (DirectoryEntry AppPool in rootEntry.Children)
                    {
                        if (AppPool.Properties["AppPoolState"].Value.ToString() != "2")
                        {
                            LogHelper.Wirte("监控到" + AppPool.Name + "应用地址池停止.");
                            AppPool.Invoke("Start", null);
                            AppPool.CommitChanges();
                            LogHelper.Wirte(AppPool.Name + "应用地址池已成功启动.");
                        }
                        AppPool.Close();
                    }
                    Thread.Sleep(600000);
                }
            }
            catch (Exception ex)
            {
                LogHelper.Wirte(ex.ToString());
            }
        }

这一个方法就搞定了,10分钟监控一次,不占任何系统资源。

但是我们怎么去取的IIS中应用地址池的集合喃,其实就是一个特殊的地址,IIS中的任何配置都是可以得到的

推荐一个可视化工具,IIS资源管理工具,大家可以百度一下。

 


推荐阅读
author-avatar
让自己更加成熟一点
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有