23rfc 发表于 2015-8-12 12:31:58

IIS应用地址池监控

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



1 /// <summary>
2         /// IIS应用地址池监控方法
3         /// </summary>
4         private void IISAppPools()
5         {
6             try
7             {
8               string entPath = "IIS://LOCALHOST/W3SVC/AppPools";
9               while (true)
10               {
11                     DirectoryEntry rootEntry = new DirectoryEntry(entPath);
12                     foreach (DirectoryEntry AppPool in rootEntry.Children)
13                     {
14                         if (AppPool.Properties["AppPoolState"].Value.ToString() != "2")
15                         {
16                           LogHelper.Wirte("监控到" + AppPool.Name + "应用地址池停止.");
17                           AppPool.Invoke("Start", null);
18                           AppPool.CommitChanges();
19                           LogHelper.Wirte(AppPool.Name + "应用地址池已成功启动.");
20                         }
21                         AppPool.Close();
22                     }
23                     Thread.Sleep(600000);
24               }
25             }
26             catch (Exception ex)
27             {
28               LogHelper.Wirte(ex.ToString());
29             }
30         }
  这一个方法就搞定了,10分钟监控一次,不占任何系统资源。
  但是我们怎么去取的IIS中应用地址池的集合喃,其实就是一个特殊的地址,IIS中的任何配置都是可以得到的
  推荐一个可视化工具
  使用IIS资源管理工具 下载地址:http://download.iyunv.com/detail/cake_green/6756847 这个要分的哈 大家也可以百度

  对应地址就是 IIS://LOCALHOST/W3SVC/AppPoolsLOCALHOST也可以是IP地址或服务器名称
  最后以服务的形式安装到服务器,一直启动就OK了
  写这个博客的目的主要是记录IIS的操作功能 有了IIS的配置地址可以对IIS做任何程序操作,根据自己的业务来定了
页: [1]
查看完整版本: IIS应用地址池监控