原文:http://www.webkaka.com/tutorial/iis/2012/05228/
-
今天在网站配置的时候发现一件比较离奇的事,那就是当我配置好网站后访问时,总是出现service unavailable的500错误提示,我检查来检查去,都查不出不什么原因,因为一直都这么配置,并且都是正常的。
这个现象,还有一个特点,那就是当我访问网站时,IIS应用程序池就自动停止关闭了,这也是我第一次遇到这个情况,真实莫名其妙。
我于是把此站点的配置与其他站点的配置一一对照,看能否找出其中的差异,他们之间的差异就很可能是导致这种情况发生的原因。
我配置站点分为几个步骤:
1、添加网站用户,并把用户加入IIS _WPG用户组
2、新建网站,并且设置网站目录、安全选项等
3、为IIS安装PHP环境
4、测试访问
这几个步骤其实都很简单,操作起来一点都不复杂。
检查第一步骤的差异时,我竟然发现我的网站用户没有被加入到IIS_WPG用户组!
我知道了,我原以为使用administrator作为网站用户的话就不用把它加入到IIS_WPG用户组了,而其他自己新建的用户,我是有把他加入到 IIS_WPG用户组的。
是不是这个原因呢,我半信半疑的把administrator这个管理员用户加入到IIS_WPG用户组里。(这个应该默认就被加上的吧,可能由于安全的原因删除了)
再次访问网站。。。。。。。打开成功!
名次解释:IIS_WPG用户组
为了管理的方便,在安装 IIS 6 时创建了 IIS_WPG 组(也称为 IIS 工作进程组,IIS Worker Process Group),而且它的成员包括 Local System(本地系统)、Local Service(本地服务)、Network Service(网络服务)和 IWAM 帐户。IIS_WPG 的成员具有适当的 NTFS 权限和必要的用户权限,可以充当 IIS 6 中工作进程的进程标识。以下位置具有指派给 IIS_WPG 的权限:
%windir%/help/iishelp/common – 读取
%windir%/IIS Temporary Compressed Files – 列出、读取、写入
%windir%/system32/inetsrv/ASP Compiled Template – 读取
Inetpub/wwwroot(或内容目录)- 读取、执行另外,IIS_WPG 还具有以下用户权限:
忽略遍历检查(SeChangeNotifyPrivilege)
作为批处理作业登录(SeBatchLogonRight)
从网络访问此计算机(SeNetworkLogonRight)service unavailable的其他可能原因
Service Unavailable是一种系统的警告提示,500服务器打开错误是网站经常出现的问题,对于这个问题,其可能原因也有多个方面。我之前就曾出现过这个问题,网站服务器竟然出现了Service Unavailable 【解决方法】。
如果一个网站的程序占资源太多或者发生太多的错误,系统日志就会提示:“应用程序池 'xxx' 被自动禁用,原因是为此应用程序池提供服务的进程中出现一系列错误,或者提示:应用程序池 'xxx' 超过了其作业限制设置。这时,访问这个网站就会提示:Service Unavailable。一般系统会在30秒左右恢复正常,多刷新几次就能正常访问了。但是现在很多空间在出现这个提示之后会很长时间都无法访问,这个时间是由服务器管理员设置的。
不过,有时候网站没有限制iis连接,还是遭遇service unavailable。
多见于使用access数据库的网站。一般使用windows 2003 iis 6的用户可能这个问题一直正常的系统,突然有一个网站打不开了, 提示: service unavailable 但这个网站并没有限制iis连接数。然后马上影响到了别的网站,不到一会,其他的网站也全变成了 service unavailable 。这是什么原因呢?
分析后可以知道,是access数据库的问题,access重新修复一下,问题便可解决。
除此外,更有趣的是,有的人把网站上传到空间里,也会出现service unavailable的问题,但在本地运行是正常的。据最后分析,竟然是数据库连接路径给写错了。
-
Tags: service unavailable