欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

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

程序员文章站 2022-05-24 18:27:20
目的:公司服务器iis有十几个应用地址池,总在不经意间停掉一个,停止线系统日志里会有一大堆警告日志,然后就停掉了,分析了好几次,网上有人说是某一个网站的问题应该查网站,但是...

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

复制代码 代码如下:

/// <summary>
        /// iis应用地址池监控方法
        /// </summary>
        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资源管理工具,大家可以百度一下。

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