VBS腳本監(jiān)視IIS 若服務(wù)停止自動(dòng)啟動(dòng)
來(lái)源:程序員人生 發(fā)布時(shí)間:2013-12-08 20:45:27 閱讀次數(shù):3265次
前幾天有位朋友跟我說服務(wù)器的IIS服務(wù)經(jīng)常因?yàn)樵L問量過大而自動(dòng)終止,苦于沒有解決訪問,在分析了他的服務(wù)器后發(fā)現(xiàn),服務(wù)器性能較低,網(wǎng)站訪問量很大,參照網(wǎng)前邊的文章《IIS自動(dòng)停止關(guān)閉及應(yīng)用程序池假死自動(dòng)重啟的問題》也不能完全解決此問題。由于他的服務(wù)器每天會(huì)不定時(shí)IIS停止響應(yīng),大約每天會(huì)有1-2次,于是就想了一個(gè)笨辦法中的辦法,就是利用VBS腳本監(jiān)視系統(tǒng)服務(wù),如果自動(dòng)停止了,就將IIS服務(wù)自動(dòng)啟動(dòng)。
經(jīng)過測(cè)試,這個(gè)方法還算比較完美一些,特別將VBS腳本發(fā)出來(lái)給大家,代碼如下:
strComputer = "."
Set objWMIService = GetObject _
("winmgmts:{authenticationLevel=pktPrivacy}" _
& strComputer & "ootmicrosoftiisv2")
While (True)
Set colItems = objWMIService.ExecQuery("Select * From IIsWebServer Where Name = 'W3SVC/1'")
For Each objItem in colItems
WScript.Echo objItem.ServerState & " " & Now & " "
If objItem.ServerState = 4 Then
WScript.Echo "! 網(wǎng)站服務(wù)停止嘗試啟動(dòng)..."
objItem.Start()
WScript.Echo "! 網(wǎng)站服務(wù)已被成功啟動(dòng)..."
End If
Next
WScript.Sleep 10000
Wend