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资源管理工具,大家可以百度一下。






 

(0)

相关推荐

  • 详细解说IIS应用程序池以及运用程序池回收AppPool第1/2页

    因为应用程序池中的应用程序与其他应用程序被工作进程边界分隔,所以某个应用程序池中的应用程序不会受到其他应用程序池中应用程序所产生的问题的影响. Windows 2003同时支持两种工作模式,默认为ISS 6.0工作进程隔离模式.工作进程隔离模式防止一个应用程序或站点停止了而影响另一个应用程序或站点,大大增强了IIS的可靠性.那么如何设置两种工作模式呢? 启动IIS管理器,右击网站,选择"属性",打开属性对话框(图1). 在IIS 6.0工作进程隔离模式下,所有的应用程序代码都在隔离环境

  • 配置IIS应用程序池的详细介绍(iis6)

    IIS应用程序池优化方案 服务器经常产生"应用程序池 'DefaultAppPool' 提供服务的进程关闭时间超过了限制.进程 ID 是 '3504'."的错误,导致iis处于假死状态,经了解是IIS应用程序池的设置问题.解决方法如下(红色字为标记): Internet 信息服务(IIS)管理器->应用程序池->DefaultAppPool->右击属性 一.回收 1.回收工作进程(分钟):选中,值为1740 (800) 2.回收工作进程(请求数目):(不选)(原先设置

  • IIS应用程序池自动停止 关闭 假死 处理集锦

    1:没有打SP1补丁的时候会出现这个IIS6.0假死问题,但现在微软都在自动更新里面出补丁了,一般你打好最新补丁后是不会出现此问题了 2:你限制了应用池 的资源过小 3:你限制了内存使用 4:就是服务器自身内存太小 5:就是ACCESS数据库太大或查询太多 6:不同网站用不同应用池 7:设置回收时间,很多人以为设置回收池越短越好,其实是错误的 8:windows 2003系统iis6访问本机的站点时提示"Service Unavailable": 查看iis的应用程序池,状况提示为:未

  • 什么是IIS应用程序池以及应用程序池详解

    什么是应用程序池呢?这是微软的一个全新概念:应用程序池是将一个或多个应用程序链接到一个或多个工作进程集合的配置.因为应用程序池中的应用程序与其他应用程序被工作进程边界分隔,所以某个应用程序池中的应用程序不会受到其他应用程序池中应用程序所产生的问题的影响. Windows 2003同时支持两种工作模式,默认为ISS 6.0工作进程隔离模式.工作进程隔离模式防止一个应用程序或站点停止了而影响另一个应用程序或站点,大大增强了IIS的可靠性.那么如何设置两种工作模式呢? 启动IIS管理器,右击网站,选择

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

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

  • C#进程监控方法实例分析

    本文实例讲述了C#进程监控方法.分享给大家供大家参考.具体如下: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Diagnostics; namespace ProcessMonitor {

  • IIS防御小规模DDOS攻击实例(反向代理)

    最近几天公司官网和业务系统的注册页面频繁遭遇DDOS攻击,导致IIS应用程序池CPU占用率100%,访问网站出现503错误.下面总结一下应对措施.     一.启用IIS的CPU监视功能 对于低频率的DDOS可以采取这种方法.w3wp.exe是应用程序池的关联进程,当WEB访问量大时,w3wp.exe会占用大量的系统资源.在DDOS攻击下,很明显的现象就是w3wp.exe占用CPU达到100%,网站拒绝访问,这个时候远程登录服务器都很困难.针对这种情况,做如下优化: 1.为IIS中的每个网站设置

  • Python3.5编程实现修改IIS WEB.CONFIG的方法示例

    本文实例讲述了Python3.5编程实现修改IIS WEB.CONFIG的方法.分享给大家供大家参考,具体如下: #!/usr/bin/env python3.5 # -*- coding:utf8 -*- from xml.etree.ElementTree import ElementTree,Element def read_xml(in_path): """ 读取并解析XML文件 :param in_path: XML路径 :return: ""&

  • C#创建IIS虚拟目录的方法

    本文实例讲述了C#创建IIS虚拟目录的方法.分享给大家供大家参考.具体分析如下: DirectoryEntry是.Net给我们的一大礼物,他的名字我们就知道他的功能--目录入口.使用过ADSI的人都知道操作IIS,WinNT这些时,我们还需要提供他们的Path,操作IIS时,这个Path的格式为: 复制代码 代码如下: IIS://ComputerName/Service/Website/Directory ComputerName:即操作的服务器的名字,可以是名字也可以是IP,经常用的就是lo

  • jq源码解析之绑在$,jQuery上面的方法(实例讲解)

    1.当我们用$符号直接调用的方法.在jQuery内部是如何封装的呢?有没有好奇心? // jQuery.extend 的方法 是绑定在 $ 上面的. jQuery.extend( { //expando 用于决定当前页面的唯一性. /\D/ 非数字.其实就是去掉小数点. expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ), // Assume jQuery is ready wit

  • Springmvc ajax跨域请求处理方法实例详解

    上次给一个网站写网站  前后端分离 最后跪在ajax跨域上面了  自己在网上找了个方法  亲试可用  记录一下 写一个类  继承HandlerInterceptorAdapter package com.util; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.web.servlet.handler.Ha

  • innodb_flush_method取值方法(实例讲解)

    innodb_flush_method的几个典型取值 fsync: InnoDB uses the fsync() system call to flush both the data and log files. fsync is the default setting. O_DSYNC: InnoDB uses O_SYNC to open and flush the log files, and fsync() to flush the data files. InnoDB does no

随机推荐