Service Unavailable 日志:程序池超过了其作业限制
出现问题原因和表现:
日志中记录到:应用程序池xx超过了其作业限制设置,这个应用程序池就是我们平时说的已分配好的IIS地址池,为什么过段时间就会在日志事件中看到某某池 子超过了其作业限制设置呢?或者提示:“应用程序池 ””xxx”” 被自动禁用,原因是为此应用程序池提供服务的进程中出现一系列错误,这时,访问这个网站就会提示:Service Unavailable。一般系统会在30秒左右恢复正常,多刷新几次就能正常访问了。
在2003服务器操作系统下则会提示”Service Unavailable”,出现这种情况是由于网站超过了系统资源限制造成的,主要是程序占用资源太多。另外,如果你的网站当前访问人数过多,如刷站,别 人盗连你站资源,包括图片,在线论坛等设置,如超过了系统的iis连接数限制,也会出现Service Unavailable的提示(win2003的主机刚直接提示:Service Unavailable)。
解决办法:
一、 检查硬盘空间是否被占满,主要检查C盘
二、 应用池相关:
还不行的话,新建应用程序池,不同的网站引用不同程序池
三、 独立进程的内存堆戋消耗完了,IIS不能创建更多的进程工作空间来处理
解决方法:
1. HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\W3SVC
2. 在Parameters键下新建一个DWORD项,名字为:UseSharedWPDesktop 值1 重启IIS
Service Unavailable 日志:程序池超过了其作业限制!
日志中记录到:应用程序池xx超过了其作业限制设置,这个应用程序池就是我们平时说的已分配好的IIS地址池,为什么过段时间就会在日志事件中看到某某池子超过了其作业限制设置呢?或者提示:“应用程序池 ””xxx”” 被自动禁用,原因是为此应用程序池提供服务的进程中出现一系列错误,这时,访问这个网站就会提示:Service Unavailable。一般系统会在30秒左右恢复正常,多刷新几次就能正常访问了。
一、 如果出现“Service Unavailable”的提示,刷新几下又可以访问:出现这种情况是由于您的网站超过了iis限制造成的。
在2003服务器操作系统下则会提示”Service Unavailable”,出现这种情况是由于网站超过了系统资源限制造成的,主要是程序占用资源太多。另外,如果你的网站当前访问人数过多,如刷站,别人盗连你站资源,包括图片,在线论坛等设置,如超过了系统的iis连接数限制,也会出现Service Unavailable的提示(win2k主机下出现连接过多就会提示:连接过多,请稍后再试;而win2003的主机刚直接提示:Service Unavailable www.dhypl.com
出现以上情况对策:如果是虚拟主机用户,看看流量有没有异常增加的情况,有时站内的个别RAR或者mp3文件被其他网站盗链,则会出现流量上升几十倍的情况。请尽快升级你的空间,以获得更多的流量配额。
如果是服务器admin,请在服务器上进行一个合理的IIS设置,可以更好的避免这种情况的产生,在服务器上进行以下设置:
1、IIS应用程序池–属性–回收工作进程为设置30分钟-80分钟;
2、内存回收下面的两个选项前全部打勾;
3、运行状况–启用快速失败保护的选项将勾去掉 ;
二、没有限制IIS连接,还是遭遇Service Unavailable !怎么办,如何解决?
多见于使用ACCESS数据库的网站,一般使用windows 2003 IIS 6的用户可能这个问题一直正常的系统,突然有一个网站打不开了,就会提示: Service Unavailable ,但这个网站并没有限制IIS连接数。然后马上影响到了别的网站,不到一会,其他的网站也全变成了 Service Unavailable,这是什么原因呢?本文太平洋数据[url]www.tpyidc.com[/url] 热能原创
我们一起分析,还是MS的老问题。ACCESS引擎当了!:有一个或多个ACCESS数据库在多次读写过程中损坏,微软的MDAC系统在写入这个损坏的ACCESS文件时,ASP线程处于BLOCK状态,结果其他线程只能等待,IIS被死锁了,全部的CPU时间都消耗在DLLHOST(ASP进程)中。用服务器医生的文件医生修复,查看修复结果时会发现一些文件引起ACCESS引擎“灾难性故障”及“未将对象引用设置到对象的实例”的错误。 通过文件医生修复后,系统才会恢复正常。
空间站长对策:请将目前使用的ACCESS桌面型数据库转换为高级的如 Sql server 引擎数据库;尽量不要使用来路不明的源程序,要使用最好自己检查下;网站定期进行代码优化。
服务器管理员对策:上面以提到,购买服务器医生,文件医生来定期修复死掉的acs引擎数据文件,可以改善服务器压力。一般情况如果ACS库大于20M,就建议空间站长转换SQL库。
此外还有几种原因:
1、注册了不良的Com组件,特别是用VB开发的ACTIVE X控件,可能导致占用内存使用量不断增长,其参考解决办法:服务器管理员尽量减少或避免非官方或是客户要求的不必要的组件;
2、多媒体等文件下载占用服务器带宽,其参考解决办法:停止下载;
3、程序问题,需要及时的关闭不再使用的数据库,以避免一直占用服务器资源 在conn.asp 连接数据库字符串语句中加入如下 sub endConnection() conn.close set conn=nothing end sub ,其它程序问题:把IE选项里 显示友好HTTP错误信息 的勾取消掉,再访问网站看出现什么错误信息,然后再调试 ;
4、上传重要的数据库等文件更新,由于正处于受访问状态,可能导致瞬间占用率上升,一般此情况较少,若有出现此情况时,可能有必要先暂停站点,再作更新;
5、建议取消程序中使用的on error resume next这个容错语句,对错误进行调试。 临时解决办法:定期删除多余的数据、压缩数据库,限制论坛灌水,甚至限制论坛注册。如果是动网论坛,可以使用论坛自带的分表储存功能,会有较好的效果,比较长远办法:更换论坛和数据库,上面已提及到的。
6、频繁出现Service Unavailable 这样的错误,请提醒客户是不是在网站中有特别的程序,比如奇虎之类的!这些软件也会与IIS发生冲突。导致程序池死掉。
三、浏览一个 Windows SharePoint Services Web 站点时,提示:Service Unavailable
这个问题比较少见。Microsoft Internet 信息服务 (IIS) 6.0 中没有正确地配置用于虚拟服务器的应用程序池,就可能会发生此问题。
解决方案:要解决此问题,按照下列步骤操作:
1.验证是否已为虚拟服务器配置了应用程序池。默认的应用程序池是 MSSharePointPortalAppPool。请按照下列步骤来确定虚拟服务器正在使用的应用程序池。a.单击“开始”,指向“管理工具”,然后单击“Internet 信息服务 (IIS) 管理器”。
b. 展开“ServerName”,展开“Web 站点”,右键单击虚拟服务器,然后单击“属性”。
c. 单击“主目录”选项卡。 为虚拟服务器配置的应用程序池列在“应用程序池”框中。d. 单击“确定”。
2.验证应用程序池帐户使用的密码是否正确。IIS 不会自动轮询 Active Directory 目录服务中的密码更改。如果应用程序池帐户是一个域帐户,其密码已过期,则在为此帐户重新指定一个新密码后,您可能会收到本文“症状”部分所描述的错误信息。
3.验证应用程序池帐户是服务器上的 IIS_WPG 组和 STS_WPG 组的成员。
4.重新启动 IIS 以回收应用程序
为应用程序池 ‘×××’ 提供服务的进程关闭时间超过了限制。进程 ID 是 ‘7480’。
提示的ID可以有很多,例如3844、8004、6124等数字。
在百度上搜了下,发现很多类似的问题,引发的根本原因未知,但导致出现此种情况的直接原因为IIS失败保护!
例如设置失败保护为每5分钟失败数超过5次则关闭应用程序池,就会出现停止服务的情况,此时提示日志为:
应用程序池 ‘×××’ 被自动禁用,原因是为此应用程序池提供服务的进程中出现一系列错误。
解决办法如下:
Internet 信息服务(IIS)管理器->应用程序池->DefaultAppPool->属性->运行状态->启动快速失败保护的钩去掉!
为了避免真的遇到很多错误时没有提示,可以不关闭,只是把快速保护的保护范围加大些,例如每5分钟失败50次则关闭对应的程序池
为应用程序池 ‘DefaultAppPool’ 提供服务的进程关闭时间超过了限制。进程 ID 是 ‘1003’。 有关更多信息,请参阅在 http://go.microsoft.com/fwlink/events.asp ;的帮助和支持中心。
注:ID号,是变化的,可以为任何数据如3124,每次出现这种错误,ID都是不一样的!
服务器表现:IIS6.0假死机,页面打不开,ASP页面,无法执行!网站打不开
本人的解决方法:目前IIS服务器应用程序池设置如下:
右击应用程序池DefaultAppPool,选取属性:
一、回收
1、回收工作进程(分钟):选中,值为1740
2、回收工作进程(请求数目):不选(原先设置为35000)
3、在下列时间回收工作进程:不填
4、消耗太多内存时回收工作进程:全不选。(2、3、4项可能避免了在访问量高的时候强制回收进程可能引发的服务器响应问题,猜的^-^)服务器内存够大,豁出去了给它用。
二、性能
只选中空闲超时20分钟。其他都不选。WEB园最大工作进程数为1(默认)。原来的请求队列限制为4000,现在无限制。
三、运行状况
前两项都起用,是原来的默认设置。启动时间限制90秒,关闭时间限制180秒。
“关闭时间限制180秒”是必须的,因为进程关闭的时间,就是在这儿设置,原来为90秒限制,是默认值,如果进程关闭时间超过90秒,则认为超时,从而出现:进程关闭时间超过了限制 日志,所以,适当延长这个时间,可以避免这种错误!
为应用程序池 “DefaultAppPool” 提供服务的进程关闭时间超过了限制
服务器经常产生“应用程序池 “DefaultAppPool” 提供服务的进程关闭时间超过了限制。进程 ID 是 “2068″。”的错误,导致iis处于假死状态,经了解是IIS应用程序池的设置问题。解决方法如下:
Internet 信息服务(IIS)管理器->应用程序池->DefaultAppPool->右击属性
一、回收
1、回收工作进程(分钟):选中,值为1740
2、回收工作进程(请求数目):不选(原先设置为35000)
3、在下列时间回收工作进程:不填
4、消耗太多内存时回收工作进程:全不选。(2、3、4项可能避免了在访问量高的时候强制回收进程可能引发的服务器响应问题,导致iis假死不响应)
二、性能
只选中空闲超时20分钟。其他都不选。WEB园最大工作进程数为1(默认)。注意web园这里一定要保持默认,如果填写其他超过1的数字就会导致一些网站程序的后台程序打不开或者刷新不停。
原来的请求队列限制为4000,现在无限制。
三、运行状况
前两项都起用,是原来的默认设置。启动时间限制90秒,关闭时间限制180秒。
启动快速失败保护的钩去掉!
为了避免真的遇到很多错误时没有提示,可以不关闭,只是把快速保护的保护范围加大些,例如失败数50次 时间段5分钟 则关闭对应的程序。
“关闭时间限制180秒”是必须的,因为进程关闭的时间,原来为90秒限制,是默认值,如果进程关闭时间超过90秒,则认为超时,从而出现:进程关闭时间超过了限制 日志,所以,适当延长这个时间,可以避免这种错误
第2种方法:
原因:独立进程的 内存堆戋消耗完了,IIS不能创建更多的进程工作空间来处理
解决方法:
1. HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\W3SVC
2. 在Parameters键下新建一个DWORD项,名字为:UseSharedWPDesktop 值为1 重启IIS
第3种
问题已解决,发现是数据库连接无法释放,不知道是什么原因,同样的代码在本地就是好的,在服务器端就有问题,最后在连接串里加入以下语句解决问题.
Pooling=true; MAX Pool Size=512;Min Pool Size=50;Connection Lifetime=30
第4种
新建应用程序池,不同的网站引用不同程序池。