现在的位置: 首页 > 综合 > 正文

windows2003 iis6.0假死问题解决

2013年06月02日 ⁄ 综合 ⁄ 共 1105字 ⁄ 字号 评论关闭

在一个项目中遇到了这个问题,一直以为是代码的问题。可是多次修改代码后问题依旧。于是在网上查找了相关的内容。整理如下:

问题的原因1:
采用的jet 数据库连接方式存在问题:
官方关于此问题的连接:http://support.microsoft.com/?id=838306

解决方式:
下载补丁:
chs:WindowsServer2003-KB838306-x86-chs.exe
enu:WindowsServer2003-KB838306-x86-enu.exe

问题的原因2:
asp或者asp.net代码中含有死循环引起

解决方式:
如果你的服务器上只部署了一个网站,那直接查程序就可以了.
如果有多个网站,可采用如下方法查找引起问题的站点:

首先,将每个网站建立独立的应用程序池,应用程序池的安全性帐户设为本地服务.过程如下:
 

新建应用程序池:
然后将网站的应用程序池指向刚才建立的应用程序池:
在建立完所有应用程序池后,统一修改应用程序池的属性:
  
将应用程序池安全帐户指定为本地服务:

设置完这些之后,问题依然是存在的,但是这样的好处是一个网站出现问题,不致影响其他网站,但是有可能这个网站仍然占用大量资源,导致其它网站响应缓慢。不过在任务管理器中出现了每个应用程序池的进程,因此可以找到具体出问题的进程了。

其次,是寻找出错网站的过程:

要找到这个网站,必须把有问题的进程跟该网站的应用程序池联系起来。首先设置任务管理器的查看方式,加入PID的显示:

 

先设置任务管理器的查看方式,加入PID的显示:
然后再命令行运行iisapp -a,可以看到PID跟应用程序池的对应关系:

问题的原因3:

access数据库后缀名的问题.

解决方式:

试着将数据库的后缀名改为asp或者是该回mdb有可能解决此问题,具体为什么不清楚.建议在使用此方法前对数据做备份.

问题的原因4:

IIS6.0压缩损坏导致访问冲突。

解决方式:

问题的原因5:
w3wp的内存占用不能及时释放,从而导致服务器响应速度很慢。
解决方式:
首先优化iis配置如下,

1、在IIS中对每个网站进行单独的应用程序池配置。即互相之间不影响。
2
、设置应用程序池的回收时间,默认为1720小时,可以根据情况修改。同时,设置同时运行的w3wp进程数目为1。再设置当内存或者cpu占用超过多少,就自动回收内存

其次优化程序:主要是优化SessionCache等资源的使用,尽量减少他们的使用频率、大小和生命周期。

还应该有其他原因,有遇到者请回复告知,谢谢您的帮助。

 

抱歉!评论已关闭.