最近公司的 运维碰到了一些问题,在客户某台服务器(系统为2003,IIS版本为6.0)上某个比较重要的应用程序池会不定期的停止,原因未知。这样就影响了服务的运行。
运维启动应用程序池后问题解决,但是因为很多时候应用程序池挺值得时间是在非上班时间,所以向开发求助一个解决办法。
准备做一个windows服务在服务器上运行,定时检查特定的应用程序池的状态,如果停止了,就把它启动,并同时记录日志信息。
相关的代码如下:
private void MonitoringISSAppPool()
{
// string method_Recycle = "Recycle"; //Start开启 Recycle回收 Stop 停止
string IIsMsg = "";
string method = "Start";
DirectoryEntry appPool = new DirectoryEntry("IIS://localhost/W3SVC/AppPools");
try
{
#region IIS6.0 Famework2.0
System.Collections.IEnumerator enumertor = appPool.Children.GetEnumerator();
DirectoryEntry subitem;
while (enumertor.MoveNext())