服务器重启后iis 网站打不开 建设中?老站长教你3招快速恢复,别急着重装系统
本文关键词:iis 网站打不开 建设中
半夜三点,刚准备睡个整觉,手机突然震得厉害。打开一看,监控报警:网站挂了。心里咯噔一下,这要是被老板发现,或者被同行看到,那脸往哪搁?赶紧爬起来连远程桌面,结果映入眼帘的是那个让人头大的“503 Service Unavailable”或者“网站正在建设中”的默认页面。这时候千万别慌,也别急着去官网下载最新版的IIS重装,那纯属浪费时间。干了15年建站,这种场面见得多了,基本上90%的情况都是IIS服务没启动,或者默认文档配置丢了。
先说个最蠢但也最常见的情况。我有个客户,去年搞活动,服务器负载高,他为了省资源,顺手把IIS服务给停了,想着第二天再开。结果第二天忙忘了,客户打电话骂过来,说网站打不开,显示“建设中”。这其实就是IIS服务处于“停止”状态。解决办法很简单:Win+R输入services.msc,找到World Wide Web Publishing Service,右键启动。如果这招管用,那你就能省下半天时间陪客户喝茶。
要是服务是启动的,但页面还是那个丑丑的默认页,那大概率是默认文档被误删或者顺序乱了。很多新手喜欢为了安全,把默认的Default.htm或者Default.asp删了,以为这样别人就进不去了。其实IIS找不到默认文档,就会抛出503或者显示内置的错误页面。这时候你去IIS管理器里,双击“默认文档”,看看列表里有没有你的主页文件,比如index.html或者default.aspx。如果没有,手动添加进去,拖到最上面,保存重启一下站点。这一步操作,能解决大半的问题。
还有一种情况,比较隐蔽,就是应用程序池的问题。有时候服务器内存爆了,或者代码里有个死循环,IIS为了保护服务器,会自动把对应的应用程序池给禁用了。这时候你去IIS管理器左边栏,点开“应用程序池”,看看有没有变灰的。如果有,右键启用,然后右键“回收”。这招对那种突然打不开,过几分钟又好的情况特别管用。
记得前年有个做外贸的朋友,服务器是Windows Server 2012,突然全站变“建设中”。他折腾了一晚上,重装了.NET框架,甚至重做了系统,最后发现是防火墙策略变了,把80端口给封了。虽然他最后没遇到端口问题,但这也提醒我们,排查顺序很重要。先查服务状态,再查默认文档,最后查应用程序池和防火墙。
这里再分享个实战经验。有些时候,网站显示“建设中”是因为根目录下有个名为“iisstart.htm”的文件,而你的主页叫“index.html”。IIS默认优先读取iisstart.htm。如果你刚迁移网站,忘了把这个旧文件删了,那不管你怎么改代码,访问的都是那个默认页面。去服务器根目录,把iisstart.htm、iisstart.png这些默认文件全删了,或者重命名,让IIS找不到它们,它才会乖乖去读你的index.html。这招虽然简单,但坑了不少人。
当然,如果以上都试了还是不行,那可能就是权限问题了。比如你的网站目录权限不对,IIS_IUSRS组没有读取权限。这时候右键网站目录,属性-安全,把IIS_IUSRS加进去,给读取和执行权限。这步操作虽然有点技术含量,但也是必修课。
总之,遇到iis 网站打不开 建设中的情况,别慌。按照服务-默认文档-应用程序池-权限这个顺序排查,基本都能搞定。别一遇到问题就想着重装系统,那是下下策。多积累点经验,下次再遇到,你就能从容应对,甚至还能顺便收个咨询费,哈哈。希望这篇经验能帮到正在抓狂的你,毕竟,稳住心态,才是解决问题的第一步。
(注:实际操作前记得备份配置文件,防止手滑改错东西。)