1. 程式人生 > >用c#怎麼檢測iis應用程式池是否被停止了,即它的狀態

用c#怎麼檢測iis應用程式池是否被停止了,即它的狀態

我的iis應用程式池動不動就被自動停止了,我想做個小程式,自動檢測iis應用程式池是否被停止,如果停止了就自動啟動它,高手幫忙

用下面程式碼可以啟動應用程式池
DirectoryEntry appPool = new DirectoryEntry("IIS://localhost/W3SVC/AppPools");
DirectoryEntry findPool =appPool.Children.Find(AppPoolName,"IIsApplicationPool");
findPool.Invoke(method,null);
appPool.CommitChanges();
appPool.Close();



用下面程式碼可以檢查一個服務是否被啟動
System.ServiceProcess.ServiceController  sc  =  new  System.ServiceProcess.ServiceController();  
sc.ServiceName  =  AppPoolName;//"MSSQLSERVER";  
if(  sc.Status    !=  ServiceControllerStatus.Running  )  
sc.Start();

問題是怎麼用這個檢測iis應用程式池是否被停止了,高手幫忙,謝謝拉

在你上面的程式碼中不是可以取得“IIS://localhost/W3SVC”這個物件麼?

那麼應該可以得到“IIS://localhost/W3SVC/IIsWebServer”這個物件,
你可以檢查這個物件的“ServerState”屬性。
ServerState Result:
         1: Starting
         2: Started
         3: Stopping
         4: Stopped
         5: Pausing
         6: Paused
         7: Continuing