目的:公司服務器IIS有十幾個應用地址池,總在不經意間停掉一個,停止線系統日志里會有一大堆警告日志,然后就停掉了,分析了好幾次,網上有人說是某一個網站的問題應該查網站,但是網站又有那么多地址,誰知道從哪個請求開始就把應用地址池給弄掛掉了啊,白天還好隨時有人看著服務器在,晚上停了就麻煩了,所有有了需求,自動監控應用地址池。其實方法很簡單,就是定時對應用地址池遍歷一遍,檢查是否有未啟動的應用地址池,有的話就執行啟動命令。
復制代碼 代碼如下:
/// <summary>
/// IIS應用地址池監控方法
/// </summary>
private void IISAppPools()
{
try
{
string entPath = "IIS://LOCALHOST/W3SVC/AppPools";
while (true)
{
DirectoryEntry rootEntry = new DirectoryEntry(entPath);
foreach (DirectoryEntry AppPool in rootEntry.Children)
{
if (AppPool.Properties["AppPoolState"].Value.ToString() != "2")
{
LogHelper.Wirte("監控到" + AppPool.Name + "應用地址池停止.");
AppPool.Invoke("Start", null);
AppPool.CommitChanges();
LogHelper.Wirte(AppPool.Name + "應用地址池已成功啟動.");
}
AppPool.Close();
新聞熱點
疑難解答