当前位置 主页 > 服务器问题 > win服务器问题汇总 >

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

    栏目:win服务器问题汇总 时间:2018-10-11 10:41

    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 + "应用地址池已成功启动.");