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