公司有二十多台服务器,里面放置的大部分是WebService程序, 有时候运行久了,会发生IIS超时或没有响应,或应用程序池满等问题, 一般都是重启IIS,回收应用程序池的方式来解决, 这种方式发现问题比较被动, 公司有意做一个webservice(我们暂时称为A服务),然后把这个A服务依次部署到二十台服务器上,然后通过一个小软件来定时调用A服务的方法,从而取到该服务器的IIS信息, 由于一个服务器有多个站点,基本上每个站点都对应着一个应用程序池,这个A服务需要知道每个站点的运行情况,现在的问题是:A服务如何才能发现需要重启IIS才能解决的问题, 比如应用程序池满 。大家有什么思路教教我,不要说去网上下个软件的之类的思路,谢谢了。

解决方案 »

  1.   

    使用Windows Server AppFabric。
      

  2.   

    IIS网站流量监控软件
    监控硬件使用情况
    遍历 应用程序池
    DirectoryEntry w3svc = new DirectoryEntry("IIS://localhost/W3SVC");
      foreach (DirectoryEntry child in w3svc.Children)
      {
      if (child.SchemaClassName == "IIsWebServer")
      {
      }
      }
    string temp = ((Double)System.Diagnostics.Process.GetCurrentProcess().WorkingSet64 / 1048576).ToString("N2") + "M";
    string temp1 = ((TimeSpan)System.Diagnostics.Process.GetCurrentProcess().TotalProcessorTime).TotalSeconds.ToString("N0");
      

  3.   

    现在的问题是:A服务如何才能发现需要重启IIS才能解决的问题, 比如应用程序池满 ,或IIS已当机谢谢上面两位的答案。但不是没有解决问题。 
      

  4.   

    我需要的是: 如何才能发现需要重启IIS才能解决的问题 , 并不一定是应用程序池满,还有IIS当机之类的。