IIS 自动停止不工作的问题
IIS do not work
IIS无法正常访问的问题
服务器是 windows 2003 iis 6
asp和php二个环境,效率不好,还常出问题,常规建议php apache服务器,能发挥出php最高性能,apache不论并发数还有安全性都比iis高很多
可是服务器是以前配置好的,有多个网站正式运行,不能随便修改,这段时间经常出现问题,整个应用程序就不能访问了,
服务器版本:window 2003 SP1,IIS6.0
问题现象
1.网页上显示
您试图在此 Web 服务器上访问的 Web 应用程序当前不可用。请点击 Web 浏览器中的“刷新”按钮重试您的请求。
管理员注意事项:
详述此特定请求失败原因的错误信息可在 Web 服务器的系统事件日志中找到。请检查此日志项以查明导致该错误发生的原因
2.windows 事件查看器-应用程序Log
The state server has closed an expired TCP/IP connection. The IP address of the client is 127.0.0.1. The expired Read operation began at 05/21/2007 20:12:04.
各种尝试
1.重启IIS服务器,开始->运行->cmd
iisreset /RESTART 停止后启动
iisreset /START 启动IIS
iisreset /STOP 停止IIS
iisreset /REBOOT 重启电脑
iisreset /REBOOTonERROR 如果停止IIS失败重启电脑
iisreset /NOFORCE 不用强迫IIS停止
iisreset /TIMEOUT:X 在X秒后,IIS被强制停止,除非 /NOFORCE 参数给出.
如果出现 RPC 服务不可用 就在 在命令模式下输入命令
sc config RpcSs start= AUTO
系统会显示"SC ChangeServiceConfig SUCCESS",这样就可以成功启动RPC服务。
2.如果上面二个方法还不行,考虑 这个 IIS6.0应用程序池回收
IIS6.0应用程序池回收设置分析
可能是很烂的程序占用了大量的资源最后导致内存泄漏,导致IIS的 进程当掉了。
程序没办法改,不可能每次出现这个问题就登陆到远程服务器上去回收一次,
可以让用自动回收,自动回收有好几种方式,回收工作进程是会把保存在内存里的Session清空,造成用户需要重新登陆的问题,尽量少用,以保证不会因为一个烂的程式导致其他的用户都要重新登陆。
用状态服务器或者是把Session保存到数据库的程序 不受自动回收的影响,请求不会中断,只是换了个工作进程继续为客户端工作,客户端是感觉不到,把Session保存到数据库真是好办法!
1.根据运行时间
系统默认是1740分钟,也就是29个小时,这个不是很好控制,建议不用,也就是去掉那个勾。
2.请求数目
看具体的情况。如果只有10个请求,可是有5个都在请求那个比较占资源的页面(可能是统计年度报表之类),这个 时候就会出现进程当掉的情况,如果请求有1000个可是一个也没运行比较占资源的页面,这个时候进程肯定是很正常的,所以根据请求的数目来决定也不符合实 际需要。
3.计划的时间
什么时间回收好呢?通常都是设置上班前和下班后回收,这个时候回收是有必要的,不过针对出现随时可能出现是高内存占用并不是很适用。
4.内存(虚拟内存或已使用的内存)
针对出现内存问题引起的进程当掉合适,设置多大的值可据每次出现问题时进程是实际占用情况来决定。
IIS的配置文件 如果配置了IIsApplicationPools节点的LogEventOnRecycle属性,每次回收的时候IIS的日志文件会根据 LogEventOnRecycle属性的值纪录下相关的信息,也个也是设置自动回收时的一个重要参考,不过由于这个日志文件只能看几个小时以前的纪录, 当前的纪录要几个小时后才写进去,所以看起来不方便
IIS的配置文件在windows的安装目录下(C:/WINDOWS/system32/inetsrv/MetaBase.xml),直接修改配置文件需要停止IIS服务,修改前记得备份。
可是为什么会出现这个原因呢?还有为什么回收一下就好了呢?回收做了些什么?
主要是一下几个问题,当然还有其他原因
1.Framework的问题,例如1.0和2.0版本
2.aspnet_wp.exe 问题
3.安全更新程序 (KB886903)
工作进程回收如何工作
根据应用程序池回收的配置方式,发布服务(WWW 服务)可以使用两种方法来回收已分配的工作进程:
.默认情况下,WWW 服务建立“重叠回收”,即继续运行要终止的工作进程,直到启动新的工作进程后为止
.WWW 服务可以终止一个工作进程,然后启动一个新的工作进程(如果工作负荷允许执行此操作的话)
注意 当 WWW 服务回收某个工作进程时,它并不断开现有的 TCP/IP 连接。HTTP 协议堆栈 (HTTP.sys) 建立并维护 TCP/IP 连接
在重叠回收方案中,要回收的进程继续处理请求,同时 WWW 服务创建一个替代工作进程。在停止旧工作进程之前启动新的工作进程,然后将请求定向到新的进程。此设计可以防止服务中断,因为旧进程关闭前仍然保持与 HTTP.sys 的通信以处理请求。因为可重叠关闭或启动的关闭超时值是可以配置的,所以在工作进程仍在处理请求的同时可以终止该进程(如果它在时间限制内没有处理完请求 的话)。
在配置应用程序池以基于运行时间来回收工作进程时,可以在设置的运行时间内回收所有的工作进程,但不能同时回收所有这些工作进程。可以在设置的时间内的不同时段进行回收应用程序,以减少客户端请求服务的中断次数。类似地,在配置应用程序池以基于处理请求的数目来回收应用程序时,可以每隔一段时间回收一次以分担与工作进程回收有关的系统开销
何时使用工作进程回收
在决定是否启动工作进程回收时,应考虑以下常规指南。最佳的解决方案是修复引起故障的应用程序。但是,并非总能使用重新编码,尤其是运行的其他应用程序代码无法修改时。
在以下情况下考虑使用回收:
无法修复 Web 服务器上您所主控的有故障的应用程序。
遇到不能确定的或间断性的故障。
怀疑应用程序由于性能监视的原因而泄漏内存。
先前已实施了临时性的重置解决方案,例如,计划执行 IISReset 命令行实用工具。
在以下情况下,可能根本不需要使用回收:
所主控的网站只包含静态内容,并且不包含自定义 Internet 服务器 API (ISAPI) 应用程序。
所主控的应用程序已经过完全测试,并且不会出现内存或资源分配问题。
要有效地使用回收,请仔细检查回收所依据的标准
IIS 果然不太好用