IIS自动重启解决方案参考

摘要:
IIS自动重新启动解决方案引用------来自网络1。解决方案1:防病毒软件或防火墙禁用FSO。一些网友会遇到这样的问题。1.与服务器上安装的防病毒软件或禁用防火墙的FSO有关。防病毒软件禁用FSO功能。由于防火墙将阻止XMLHTTP随机打开的查询端口,因此远程图像的轻松收集和保存需要使用XMLHTTP组件。同时,请在正式使用IIS日志时禁用它?

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自动停止的原因很多都是代码引起的,所以请仔细检查一下代码,特别注意是否释放了connectionrecordset等对象=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  

   

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

 HOWTO:   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  

 Services  

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

   

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

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

   

 HOW   TO:   Isolate   Web   Applications   into   Their   Own   Process  

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

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

 需要对系统杀毒。

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

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

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

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

 

7.         解决方案七:w3wp.exeSessionCache等原因造成

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

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

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

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

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

免责声明:文章转载自《IIS自动重启解决方案参考》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇influxdb使用1.恶意软件中的防双开下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

虚IP解决程序连只读服务器故障漂移

        目前公司有一套核心交易数据库配置了AlWaysON,SQL 2012版本, 1主4从, 其从库(8,14, 8.15) 这2台只读的从数据库服务器, 后台程序和wms等很多程序,都是直接配置IP连接这个2个机器,而且这2台机器已经过保,如果其中一天机器出现故障,不能使用,怎么处理?         怎么解决?         先谈谈后果:...

jquery 的 ajax 传输 数组 ,但后台无法获取的 原因 与 解决 办法

1.前言 js传输数组到服务器 ,controller无法解析 ,打印结果是 null 2.原因 jQuery会调用jQuery.param序列化参数,源码是 jQuery.param( obj, traditional ), 作用是深度序列化参数对象,用来适应PHP和Ruby on Rails等框架,但servelt api却无法处理 因此,禁用序...

C语言动态内存分配

C语言动态内存分配:堆不连续 栈连续 动态内存分配: 1.从静态存储区域中分配(系统自己分配) 2.从堆内存中分配(动态内存分配) 3.在栈中进行分配(系统自己分配) 动态内存分配和释放函数: malloc函数 calloc函数 recalloc函数 free函数 常见内存分配错误: 使用未分配的内存 引用了分配成功但尚未初始化的内存 内存分配且初始化了,...

dotnet 获取程序所在路径的方法

在 dotnet 有很多方法可以获取当前程序所在的路径,但是这些方法获取到的路径有一点不相同,特别是在工作路径不是当前的程序所在的路径的时候 通过下面几个方法都可以拿到程序所在的文件夹或程序文件 AppDomain.CurrentDomain.BaseDirectory 当前程序域寻找 dll 的文件夹 Environment.CurrentDirect...

PHP 垃圾回收机制(转)

转载自 liweixixihaha 最终编辑 liweixixihaha 每一种计算机语言都有自己的自动垃圾回收机制,让程序员不必过分关心程序内存分配,php也不例外,但是在面向对象编程(OOP)编程中,有些对象需要显式的销毁;防止程序执行内存溢出。 一、PHP 垃圾回收机制(Garbage Collector 简称GC) 在PHP中,没有任何变量指...

C语言中位域(bit fields)的可移植问题

 网上有文章说C语言的“位域”(bit fields)有可移植性的问题,原因是不同的编译器对位域的实现不同。   我决定用实验验证一下。   一、 实验过程:   1. 准备实验程序   这 是谭浩强C语言课本上第12章12.2节的位域示例程序:   main() {   struct bs   {   unsigned a:1;  ...