当前位置: 首页 > news >正文

w3wp.exe 频繁重启 Faulting application w3wp.exe

有段时间时尔会iis发点小神经.

症状:不知道项目是什么程序造成iis遇到致命问题导致iis应用程序池自动关闭,今天创新高一天死了四次,(这些错误可以去系统事件日志里找到)

在网上找了一方法:

解决办法非常简单,打开应用程序池的属性页,在“回收”选项卡把所有的复选框去掉,让.NET的垃圾回收来管理内存而不要让IIS来插手。

   为应用程序池 '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种

   新建应用程序池,不同的网站引用不同程序池。

   为应用程序池 'AppPool #1' 提供服务的进程关闭时间超过了限制。进程 ID 是 '3000'。

   出现上面情况后,该应用程序池对应的网站就访问的非常慢,几乎是打不开。

   这种现象是不是iis假死?

   重启下该站点,问题可以得到解决。

   可能是应用程序池设置问题,不知道具体应该怎么设置!

   请高手指点。

   程序代码解决办法:

   1  设置进程池回收时间.在进程池属性里.

   2  如果你的程序是使用 asp + acc 数据库.且acc数据库大于30m.建议更换sql数据库. acc数据库大于这个值.2003系统下会造成iis6的频繁假死.2000下会造成dllhost.exe占用大量cpu及内存资源.都会严重影响web访问速度.

   3  asp程序存在死循环.

   4  可使用 microsoft office 压缩修复acc数据库,须先备份.

引用内容2003应用程序池假死常见问题及解决方法 2006-10-09 09:48   经常见到大家谈起,2003应用程序池自动死了,不能恢复了,一直出现 Service Unavailable 常见方法如下。   1:以前没有SP1打补丁的时候会出现这个IIS6。0假死问题,但现在微软都在自动更新里面出补丁了,一般你打好最新补丁后是不会出现此问题了。(所以现在的IIS假死与这个关系不是很大)   2:从IIS6.0开始CPU资源都在应用池里面限制了,不象以前的IIS。5。所以假死的池的缘故就是池被拉死,你在网站打不开的时候可以看到你的某个应用池是禁用的,上面出现一个红叉。你鼠标右键启动网站又会自动恢复。 这个原因:大概是以下几个因数造成的。     (1):你限制了应用池的资源限制,限制得太小 比如:50这样或更少更多一点,这个时候如果你这个池下面的网站占用CPU太高,比如超过50% 那么5分钟后他就自动死了,手工默认建立的应用池默认是超过资源不操作。      出现上面这个情况解决方法:1:不限制CPU资源,(这个是不可取的,不限制资源,有的程序有BUG占用资源厉害了的,服务器都会被拉死,你可能都无法操作服务器。)2:在超过资源那里选择 关闭,这个关闭默认是失败5次,90秒内恢复,一般默认就可。网站能自动恢复,这个关闭:不是永久关闭,意思是超过资源关闭,然后在某时间内自动恢复池。不操作就是不恢复,这个是很多人的误区。上次我写过相关的这个讲解了。     (2):内存限制 在IIS6。0应用池上面有虚拟内存和最大内存限制,如果你设置了这个。那么网站访问量大了 也会出现假死,所以不建议设置这里。默认就可。   3:就是服务器自身内存太小,网站运行当然需要使用到内存了,当内存不够的时候应用池也会死掉变成禁用。那么只有等内存全部释放出来才能恢复应用池了。出现这个情况:那么你就要考虑加内存或者检查到底是什么程序占用了内存了。比如MSSQL数据库,这个可是吃内存得大户啊,最好别和WEB服务器同时一个服务器上。很多人用1G内存做 2003系统,2003NET结构是很占用内存的,所以做服务器选2003还得把内存加到2G或更高才好。 内存不够上面 2点讲到的,是没办法操作了,也无法自动恢复。   4:就是ACCESS数据库太大或查询太多,这个也会出现把IIS拉死,解决方法;修复ACCESS数据库,或尽量少用ACCESS数据库。   5:不同网站用不同应用池:根据你自己实际情况而定,站点大的最好独立一个应用池,限制他的资源超过了自动回收,看上面 (1)讲到的,这样就不影响其他站点。 中型站点:多个网站共用一个应用池,比如5个站点用一个池,设置他资源时间等等。这样他们就算超资源了也不影响其他应用池的网站。   6:设置回收时间:很多人以为设置回收池越短越好,其实是错误的,每次回收当然是把内存回收回来了,但加重了一次服务器的负担,当服务器比较繁忙的时候,有可能导致其他应用池死。所以建议设置共1000就行了。其他独立池按照他网站流量而设置 可以设置600 也行,共用的不建议设置太短。   7:网站后台过不了多久自动退出又要重新登陆:这个情况就是你设置回收时间太短了,按照 6点设置吧。 不要设置什么20分、30分这样的,这样不好的。

 

 

 

 

 

 

 

 


相关文章:

  • UTF-8编码下的Cookies出错 类型不匹配: ‘[object]‘
  • gzip 和 gunzip 的使用
  • linux下vi命令大全
  • extjs 同步和异步请求
  • Extjs combo数据绑定与获取
  • 上传图片Microsoft VBScript 运行时错误 错误 '800a01a8' extension=upfile.file(inputname).FileExt
  • RPM包管理
  • Linux Crontab 定时任务 命令详解
  • IIS 子验证程序的注册表键没有在本地计算机上正确配置,匿名密码同步功能被禁用
  • linux之dd命令
  • 將數字前面補0,補足設定的長度
  • C# .NET FTP上传文件夹操作
  • C# 实现Window服务实现定时发送邮件
  • Access denied for user 'root'@'localhost' (using password:YES) 解决方案
  • Maximum request length exceeded
  • 002-读书笔记-JavaScript高级程序设计 在HTML中使用JavaScript
  • Docker 笔记(2):Dockerfile
  • gitlab-ci配置详解(一)
  • IDEA 插件开发入门教程
  • java正则表式的使用
  • JS数组方法汇总
  • Linux快速复制或删除大量小文件
  • MobX
  • v-if和v-for连用出现的问题
  • webpack入门学习手记(二)
  • 分布式任务队列Celery
  • 机器学习中为什么要做归一化normalization
  • 快速体验 Sentinel 集群限流功能,只需简单几步
  • 推荐一款sublime text 3 支持JSX和es201x 代码格式化的插件
  • 小程序测试方案初探
  • 一道闭包题引发的思考
  • Semaphore
  • 策略 : 一文教你成为人工智能(AI)领域专家
  • (1)虚拟机的安装与使用,linux系统安装
  • (C#)获取字符编码的类
  • (Matalb回归预测)PSO-BP粒子群算法优化BP神经网络的多维回归预测
  • (三分钟)速览传统边缘检测算子
  • (转)JAVA中的堆栈
  • (转)nsfocus-绿盟科技笔试题目
  • (转)母版页和相对路径
  • (转)拼包函数及网络封包的异常处理(含代码)
  • *1 计算机基础和操作系统基础及几大协议
  • .bat批处理(八):各种形式的变量%0、%i、%%i、var、%var%、!var!的含义和区别
  • .dat文件写入byte类型数组_用Python从Abaqus导出txt、dat数据
  • .NET Core 版本不支持的问题
  • .NET 将混合了多个不同平台(Windows Mac Linux)的文件 目录的路径格式化成同一个平台下的路径
  • .Net 路由处理厉害了
  • .NET 命令行参数包含应用程序路径吗?
  • .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用?
  • .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法)
  • .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现)
  • .net程序集学习心得
  • .Net中的集合
  • .pyc文件还原.py文件_Python什么情况下会生成pyc文件?
  • @font-face 用字体画图标