目的:公司服務(wù)器IIS有十幾個(gè)應(yīng)用地址池,總在不經(jīng)意間停掉一個(gè),停止線系統(tǒng)日志里會(huì)有一大堆警告日志,然后就停掉了,分析了好幾次,網(wǎng)上有人說(shuō)是某一個(gè)網(wǎng)站的問(wèn)題應(yīng)該查網(wǎng)站,但是網(wǎng)站又有那么多地址,誰(shuí)知道從哪個(gè)請(qǐng)求開(kāi)始就把應(yīng)用地址池給弄掛掉了啊,白天還好隨時(shí)有人看著服務(wù)器在,晚上停了就麻煩了,所有有了需求,自動(dòng)監(jiān)控應(yīng)用地址池。其實(shí)方法很簡(jiǎn)單,就是定時(shí)對(duì)應(yīng)用地址池遍歷一遍,檢查是否有未啟動(dòng)的應(yīng)用地址池,有的話就執(zhí)行啟動(dòng)命令。
復(fù)制代碼 代碼如下:
/// <summary>
/// IIS應(yīng)用地址池監(jiān)控方法
/// </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("監(jiān)控到" + AppPool.Name + "應(yīng)用地址池停止.");
AppPool.Invoke("Start", null);
AppPool.CommitChanges();
LogHelper.Wirte(AppPool.Name + "應(yīng)用地址池已成功啟動(dòng).");
}
AppPool.Close();
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注