建立windows服務,定時監控網站應用程式程式池

來源:互聯網
上載者:User

最近網站總是報"Timer_Connection"錯誤,導致該網站所使用的應用程式集區由於錯誤過多停止運行,網站也就出現了service unvaliable,無法訪問,在網上查了很多資料, 結果很讓人無奈,這個問題已經困擾我了很久,一直沒有得到解決,後來同事發來一篇文章讓我有了新的解決方案,雖然不能根本解決這個報錯,但可以快速清空並恢複指定的應 用程式池

不多說了,看看下面這個方法吧,主要是建立一個串連(如你要監控的網站的一個地址),如果能訪問到這個頁面說明網站應用程式程式池沒有問題,如果不能訪問,也就是會報錯 嘍,這時我們就可以調用下面的方法,去清空並重啟該應用程式集區,代碼如下:

public void RestartAppPool()    {      System.Net.HttpWebRequest request = (HttpWebRequest)WebRequest.Create(System.Configuration.ConfigurationSettings.AppSettings["webfile"].ToString());      request.KeepAlive = false;      try      {        System.Net.HttpWebResponse response = (HttpWebResponse)request.GetResponse();        response.Close();      }      catch      {        DirectoryEntry root = new DirectoryEntry("IIS://localhost/W3SVC/AppPools/" + System.Configuration.ConfigurationSettings.AppSettings["AppPoolName"].ToString());        root.Invoke("Start", null);        root.CommitChanges();        AddEventLog("重啟應用程式集區於:"+DateTime.Now.ToLongTimeString());        root.Close();      }    }

這裡有一點需要注意,DirectoryEntry需要引用C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.DirectoryServices.dll

另外還要Using System.Net

而我則是建立了一個windows service來定時去檢查應用程式集區的狀態.

另外,大家在建立windows service的時候可不要忘記在安裝進程式控制件(serviceProcessInstaller1)屬性中將Account設定為Local System,否則在您安裝這個服務時會提示 您輸入使用者名稱及密碼,如下圖

這時您需要在安裝服務之前建立一個windows賬戶,並且需要在策略中"作為服務登入"添加您之前建立的使用者,當然這樣做實在很麻煩,為了不在安裝中出現這個問題,一定 要將Account設定為Local System,本人之前就遇見了這個問題,最後不得不在網上又搜了一圈才明白到底是怎麼回事,希望您在遇到這個問題是對您有所協助哦.

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.