IIS-503过错终极解决办法51CTO博客 - 乐橙lc8

IIS-503过错终极解决办法51CTO博客

2019年03月29日09时21分23秒 | 作者: 梦蕊 | 标签: 应用程序,假如,收回 | 浏览: 1143

信任许多web管理员都碰到过IIS-503的过错,Service Unavailable,呈现这个问题一般都是和相应站点的应用程序池有关,一般都是连接数过多导致该应用程序池占用的CPU过大而导致池假死。解决办法便是收回应用程序池。但是挂在公网上的web效劳器都是对外供给24小时的效劳,身为网管的你总不可能时时刻刻守在那。信任咱们都有深夜被老板叫醒的阅历。

 

言归正传,以下便是自己想出来一个比较懒的办法。

需求用到的东西有curl for win32,grep for win32,这些都是linux下的东西,借来用用。

以上东西请自行在百度中谷歌一下就可以得到。

思路:运用curl去获取一个页面的http头,通过这个头咱们就可以判别应用程序池是否假死,假如获取到HTTP/1.1 200 OK阐明应用程序池正常,假如是503或许其他就阐明有问题。再通过grep去挑选要害字的行,假如这行不是回来"HTTP/1.1 200 OK"的成果就收回应用程序池。

榜首,做一个healthcheck.aspx的页面,放到网站的目录下,内容随意写点,就xxx.com is ok now吧。

第二,仿制以下代码,保存为AppPoolRecycle.vbs,一段收回应用程序池的代码。
strComputer = "."
Set objWMIService = GetObject _
    ("winmgmts:{authenticationLevel=pktPrivacy}\\" _
        & strComputer & "\root\microsoftiisv2")

收回名为test的应用程序池
Set colItems = objWMIService.ExecQuery _
    ("Select * From IIsApplicationPool Where Name = " & _
        "W3SVC/AppPools/test")

For Each objItem in colItems
    objItem.Recycle
Next

第三,判别应用程序池是否假死,假如是,运转上面的收回代码。仿制以下代码为appdeadchk.vbs。

Set objShell = CreateObject("Wscript.Shell")
运用curl获取方针网页的http头信息
strcmd1 = "%comspec% /c C:\GnuWin32\bin\curl -I -o c:\curl.txt"
运用grep挑选出curl获取的要害行HTTP/1.1
strcmd2 = "%comspec% /c C:\GnuWin32\bin\grep.exe HTTP/1.1 c:\curl.txt >c:\grep.txt"
objShell.Run(strcmd1)
等候500毫秒让strcmd1的文件写完,由于strcmd2需求这个文件
WScript.Sleep 500
objShell.Run(strcmd2)

翻开通过挑选后的grep.txt文本
Const ForReading=1
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTextFile = objFSO.OpenTextFile("c:\grep.txt", ForReading)
strLine = objTextFile.ReadLine
去掉头尾的空格
strnewline = Trim(strLine)
判别行是否等于HTTP/1.1 200 OK,假如不等于则运转c:\AppPoolRecycle.vbs
If not strnewline = "HTTP/1.1 200 OK" then
objShell.Run("c:\AppPoolRecycle.vbs")
End if

最终,运用计划任务让appdeadchk.vbs程序每5分钟运转一次。

留意:不要傻呵呵的抄袭代码,某些内容仍是要自行修正的。别的假如是多站点,选用主机头方法布置的还需求在hosts文件中增加域名到IP的映射联系,主张运用内网解析,切勿绕到公网去解析。

版权声明
本文来源于网络,版权归原作者所有,其内容与观点不代表乐橙lc8立场。转载文章仅为传播更有价值的信息,如采编人员采编有误或者版权原因,请与我们联系,我们核实后立即修改或删除。

猜您喜欢的文章

阅读排行

  • 1

    IIS-503过错终极解决办法51CTO博客

    应用程序,假如,收回
  • 2
  • 3

    linux 设置 ulimitITeye

    发动,效劳,报错
  • 4

    .bashrc文件主动收效ITeye

    履行,如下,客户端
  • 5

    JProfile官方翻译ITeye

    协助,章节,主题
  • 6
  • 7

    CentOS上L2TP/IPSec VPN构筑ITeye

    发现,注释,重新启动
  • 8
  • 9
  • 10

    一个简略的切开shellITeye

    一个,文件,体系