uncategorized

控制IIS Application Pool

在使用系統方式去針對Application Pool進行控制,可以遠端開起停止等動作。這樣就可以方便管理一堆伺服器中的每個網站這裡依舊使用DirectoryEntry類別來進行此動作。並搭配Invoke方法。

首先須取得要控制的Application Pool Name

1
string appPoolPath = @"IIS://HostName/W3SVC/AppPools/" + Application Name;

前置的處理可參考這兩篇去進行

  1. 顯示IIS站台列表的實體位置路徑
  2. 顯示IIS所有站台列表

啟動Application Pool

1
2
DirectoryEntry w3svc = new DirectoryEntry(appPoolPath);
w3svc.Invoke("Start", null);

停止Application Pool

1
2
DirectoryEntry w3svc = new DirectoryEntry(appPoolPath);
w3svc.Invoke("Stop", null);

回收Application Pool

1
2
DirectoryEntry w3svc = new DirectoryEntry(appPoolPath);
w3svc.Invoke("recycle", null);

以上方式就可以遠端控制IIS中的Application Pool的狀態。此外,若是在Domain內話,必須用有遠端控制IIS權限的NT帳號進行使用,否則會出現權限不足的狀況發生。若是Web Site話,該Web Site的Application Pool的識別也要設定遠端控制IIS權限的NT帳號