这几天在客户方服务器上(服务器为win2003,iis为iis6)部署了系统,之前一直是部署在win2008的iis7下面,还未出现过问题,当然,首次在iis6下部署也花了点时间,最终能够正常访问,但是部署完成之后第二天,客户就给我打电话说,系统无法访问,我打开一看,错为:“Service Unavailable”,服务不可用??第一时间想到iis服务有问题,进去一看,果然,系统所在应用程序池关闭了?本来是启动的,怎么好好关闭了?后来问了下那边网管,是因为重启了服务器,再看了下其他的应用程序池,都能够启动,郁闷了,先给启动吧,然后按照其他程序池的设置重新配置了一番,再重新启动,好了。本以为这样就Ok了,谁知今天又给我打电话说之前的问题又出现了,尼玛坑爹啊,仔细看了下系统的日志的详细:“来源:W3SVC,类型:错误,事件ID:1002,描述:应用程序池 *** 被自动禁用,原因是为此应用程序池提供服务的进程中出现一系列错误”,被自动禁用?这个程序又得罪谁了,最后找了下资料,原来是程序池的启动账号权限不够,按照下面的顺序给配置起来,刷新下iis就好了。 给用户NETWORK SERVICE加上访问IIS服务的权限开始 – 控制面板 – 管理工具 – 组件服务 – 计算机 – 我的电脑 – DCOM – IIS ADMIN SERVICE – 属性 – 安全 – 启动和激活权限 – 自定义 – 添加帐号“NETWORK SERVICE”,给该帐号赋予“本地启动”和“本地激活”的权限在cmd下输入“IISRESET”命令(不含引号)重新启动IIS 当然,造成 “Service unavailable”的问题肯定不仅仅这个一个原因,找了下资料,分享给大家:原因一:网站超过了IIS连接数
解决办法一:增加IIS连接数
备注一:Windows 2003的操作系统在提示IIS过多时并非像win2000系统提示“链接人数过多”,而是提示"Service Unavailable" 原因二:网站超过了IIS资源限制
解决办法二:增加网站的资源
备注二:Winodws2003中网站占用了超过IIS对该网站系统资源的限制后直接提示"Service Unavailable" 原因三:网站的程序发生太多的错误
解决办法三:修改程序错误
备注三:Winodws2003中网站错误太多,就会造成该网站所在的应用程序池出错,这个时候可以在Windows2003的日志中看到“应用程序池 'xxx' 被自动禁用,原因是为此应用程序池提供服务的进程中出现一系列错误”,这个时候网站就会直接显示"Service Unavailable"以上三个原因造成的"Service Unavailable",一般现象是出现"Service Unavailable"后,多刷新几次,就可以打开。 原因四:ACCESS引擎错误
解决办法四:重启IIS
备注四:有一些文件造成了ACCESS数据库出现“灾难性故障”及“未将对象引用设置到对象的实例”的错误原因四造成的"Service Unavailable",现象是所有该服务器上的使用Access数据库的网站都出现错误,不能访问。以上四个原因是常见的造成了"Service Unavailable"的原因,其他还有一些问题造成了该问题,基本只要IIS重启一下就可以的。 原因五:ISAPI筛选器没有正常加载1、打开该网站,直接显示Service Unavailable,那就去看IIS,发现该网站所在的应用程序池被禁用;2、手动启动该应用程序池,再打开该网站,继续提示Service Unavailable;3、把该网站换了一个应用程序池,再打开该网站,还是提示Service Unavailable;从上面三点来看,问题不在网站,也不在应用程序池,而在IIS本身,进入下一个阶段的排查。打开“事件查看器”,先查看系统日志,里面出现了很多来自W3SVC的日志,如下图所示。任意点开错误日志,显示如下图内容再到应用程序日志里面查看,也是有很多的错误日志,显示如下图内容任意点开错误日志