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。