IIS自动重启解决方案参考

-----源自网络

 

1.         解决方案一:打上微软red Code(红色代码)补丁

Ø         到microsoft网站上看有关红色代码病毒的告示,然后下载升级包。运行即可。

杀一下毒,也许是红色代码

 

Ø         我见到过这个现象,打上微软red   code补丁就好了。  

视你的OS到微软网站下个补丁,然后重起就好了

 

Ø         检查一下是不是中了红色代码吧。它在中文版下可是要起四百个进程进行传染呀。当然IIS会当了。

 

2.         解决方案二:杀毒软件或防火墙禁用了FSO有关

某些网友会遇到这样一个问题,后台管理时,有时会遇到IIS假死现象,就是突然间,点任何东西都没有反应,只能重新启动服务器。这种情况在有关用到FSO和采集时会经常遇到。这是什么原因呢?

1、和服务器上安装的杀毒软件或防火墙禁用了FSO有关。杀毒软件禁用FSO功能,他并改变FSO在注册表中类名,所以让系统以为FSO功能正常,但实际上,FSO是不能使用的,结果导致系统陷入死循环或无限等待,而导致IIS假死。这个现象在安装了诺顿等杀毒软件,并且启用了“禁用脚本”这个功能(默认是启用的)后,最为常见。而动易系统几乎所有地方都在使用FSO,在添加频道、添加栏目、添加文章等都要使用FSO功能。

 

2、和防火墙封住了某些端口有关。某装有防火墙的服务器,由于防火墙会阻挡XMLHTTP随机开启的查询端口,导致此组件发生长时间等待的现象,并可能引起较明显的“假死”现象。而动易的采集和保存远程图片功能都需要使用XMLHTTP组件,所以一进行这些操作,就有可能出现“IIS假死”现象,或者出现采集失败或保存远程图片失败的现象。

 

 

3.         解决方案三:IIS日志存放的盘是不是满了?

看看你的IIS日志存放的盘是不是满了???日志文件在SYstem32"LogFiles下面。  

同时在正式使用的时候请禁用IIS日志,在调试的时候再打开。

 

4.         解决方案四:应用程序池的原因

主要是AppPool的问题,给应该程序单独新建一个AppPool,并设定好自己动回收的时间和周期;  

我以前管理服务器的时候也经常出现这个问题!

 

 

5.         解决方案五:从以下几个方面大概考虑

    实际中检查IIS自动停止的原因很多都是代码引起的,所以请仔细检查一下代码,特别注意是否释放了connection、recordset等对象=nothing。  

如果使用了VB   COM,注意选中这两个选项:'unattend   execution'   和   'retain   in   memory'。  

对于程序中的on   error   resume   next也要特别注意,看是否会引发死循环。  

一个可用的调试检查方法是:  

(1)首先隔离IIS应用程序,将其设为高的应用程序隔离。  

(2)监视所有的dllhost.exe,记住其PID、通常的CPU和内存占用数据  

(3)查看任务管理器中的每一个PID各自代表的应用程序或对象。  

(4)然后在访问IIS时看其占用资源。  

   

对于其他原因,首先确认是否安装了最新的安全包。可以参考http://www.microsoft.com/security/.  

   

然后,可参考http://www.microsoft.com/technet/treeview/default.asp?url=/technet/prodtechnol/iis/default.asp

 

中"Performance"一节或看“HOW   TO:   Monitor   Web   Server   Performance   by   Using   Counter   Logs   in  

 

System   Monitor   in   IIS”         http://support.microsoft.com/default.aspx?scid=kb;en-us;313064  

这可以帮助确认是否为硬件瓶颈导致IIS停止服务。  

当然,也需要排除病毒可能。  

还要说到的一点是:在开发完成到程序实际部署到生产环境,最好用WAS进行压力测试:http://webtool.rte.microsoft.com。  

   

下面几个可能会有所帮助的文章:  

   Troubleshoot   High   CPU   Utilization   of   an   MTS   or   COM+   Process    

http://support.microsoft.com/default.aspx?scid=kb;en-us;Q258833  

    How   to   Isolate   a   DLL   into   a   Separate   Process   By   Using   Component  

  

  

   

   Use   Autodump+   to   Troubleshoot   "Hangs"   and   "Crashes"  

  

   

   TO:   Isolate   Web   Applications   into   Their   Own   Process  

  

 

 

 

 

 

和一些Inetpub目录下的一些tftp文件都和曾流行一时的尼姆达病毒有关。  

需要对系统杀毒。

同时,关于该病毒的查杀,网上有很多讨论,可以搜一下。  

我觉得可能是一些链接没有释放,比如连数据库的。这样内存虽然没有达到重建asp.net进程的,但系统已经无法创建新的连接,就无法访问了。

 

IIS服务管理器----》应用程序池----》添加你的应用,并设置最大内存,当程序达到最大内存后其会自动重启。

 

6.         解决方案六:请检查W3WP.EXE进行,和SQLserver进程占用内存和CPU的情况


7.         解决方案七:w3wp.exe、Session、Cache等原因造成

w3wp.exe就是你的ASP.NET应用宿主,如果你使用了大量的Session、Cache等资源,并且Session超市时间很长,那么内存占用量就比较大。应用池是为增加性能而设的一个特性,但是也消耗很大的内存。另外关掉Windows   Server   2003里的大多数Service(那个不用都可以关掉),也可以节省一部分内存

 

你的问题我以前也遇见过,我以前是用的Session,后我全部改成cook之后就好多了,应该是你的Session或是你的CACHE有问题(CACHE不太懂,但多多少应该是有的)

 

优化asp.net程序,就向楼上的说的那样,少用或不用session   cache   application之类的东西,再有就是是不是有翻页的地方,翻页处理不好也是会占很多内存的。

 

总结上面,大概原因是因为   session   和   cache   的不合理使用造成的。  

我的应用程序中,确实用了很多的Session   和   Cache。