Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

一起讨论IIS假死问题,PHP在IIS6不稳定问题

[复制链接]
叮当猫 发表于 2006-11-2 00:40:30 | 显示全部楼层 |阅读模式
IIS问题(IIS假死、停止, 回收应用程序池)


卸载
a) 把整个IIS卸载
b) 把 %windir%\system32\inetsrv 删除掉
    把%windir%\iisX.log删除掉。 X 是(w2k-iis5.log,xp-iis6.log)
    也把 \inetpub\ 目录删除掉
(可以在safe-mode里删除)
c) 重装IIS,打上最新补丁

iis6假死的一种解决方法
    大家在使用iis6时..如果装了动网论坛.肯定有出现过iis6假死现像..就是asp网页打开慢..但是iis却是正常的..静态网页打开速度一样..这时候..我一直是重启的方法..查了官方的资料结果没有...据官方资料说..win2003很快就要打这个补丁了..是iis6对access驱动支持不理像..也算是一个bug吧..由于我的服务器虚拟主机多..而且大多支持asp..如果一旦假死就  无法运行..在多方面的资料查找下..找到了一个比较简单的方法..具体我测试是通过了..iis6自带数据应用程序池..现在就利用他来解决假死..
   首先把bbs设一个单独的目录..然后点击应用程序池..新建应用程序池.输入应用程序池id..
然后把bbs的虚拟目录下面的.就用程序池..选择刚才新建的应用程序池...
    然后再回到刚才设好的应用程序池...点击..属性...把回收工作进程数(分钟)及回收工作进程数还有在下列时间回收时间进程勾上..然后在下列时间回收程序池里左边添加..选择一个时间..一般来说..网站到凌晨3点的时候.基本人都很少了..这时回收一下bbs的进程数..就可以解决了iis假死的现像..
    当然还可以配置其他信息..比如说iis6的用户名.. 我们可以打开计处机管理..然后打开计算机用户管理..添加一个用户..设置好后..在应用程序池里面..标识..把添加的用户放上去..用用户来测试回收的进程..当然还有..其他配置..其实很简单..只要你好好看一下..就能明白意思...

  对于我来说..这种方法可能不太方便..所以我用一个工具来回收应用程序池..这样方便而且快捷..个人用户当然不需要这种工具..我是公司工作..服务器压力挺大..所以都用工具来解决一些问题.所括.iis的备分.及虚拟主机ip的统一修改及端口访问的ip记录..用批处理是一个很简单又方便的方法.所以.把一台服务器做的安全..并不是哪么容易的事..特别是iis..经常去官方网站搜索资料是一个好习惯..还有就是经常性的访问日志..及注册表的用户还有加载运行的程序.及服务也是一个好方法..所以.要学会如何遇到问题如何处理问题!!!!
windows系统官方网站知识数据库:
http://support.microsoft.com/default.aspx?scid=fh;ZH-CN;KBHOWTO


关于WIN2003 IIS6.0无故停止的问题

iis回收应用程序池设置不好,容易造成用户登陆自动退出

    这个问题曾经困扰了我半个月时间.一台运行WIN2003 IIS6.0的服务器.不定时出现.ASP不能访问.可是其间.CGI PHP HTM JSP 一切正常.经过多次试验.解决问题如下.

    打开IIS 你就会看到应用程序池.默认只有一个应用程序池.你查看应用程序池的属性.会发现他的回收时间.默认多达.1740分钟.就是说.需要在1740分钟后才回收此应用程序池.如果在这个时间内.达到请求的最高限制.那么就会出现ASP假死的情况.这个就是大型网站出现假死的情况.反而.小型网站确不会出现这样的情况.因为他请求少.流量少.还没达到限制数量.

    少说费话.怎么解决?;

    当然要看你的服务器上拉了多少个网站而定.以下是我的解决方法.

    单个网站解决方法.;

    (很简单.把应用程序池回收时间缩短到300-600分钟.其间回收过程中.需要占用一点CPU资源.没办法.为了稳定性.再把回收时间设为凌晨5点)

    多网站解决方法.

    我的服务器目前拉了70个网站左右.我新建六个应用程序池.把每个池回收时间缩小到300分钟.然后再分配每个池10个网站左右(这个分配是要求你的网站访问量所定)如果某个网站.访问量大.就单独给他一个程序池.但是这样做的后果就是需要大内存.一个池现在占用我120M内存左右.反正内存大.没关系.}'
多网站如何分配应用程序池??.打开IIS--查看你要分配的网站属性..查看主目录--在下面你就会看到应用程序池了.分配一个就行了.

    以上是我的临床试验.服务器现在稳定的运行中.本来几乎一天就停一次.要我重起IIS才行..


我今天搜的,希望对大家有用
 楼主| 叮当猫 发表于 2006-11-2 00:42:39 | 显示全部楼层
这几天服务器总是运行缓慢,远程登录后发现一个w3wp.exe的进程占用了100% cpu。
问题的原因最终找到两个:
1.采用的jet 数据库连接方式存在问题:http://support.microsoft.com/?id=838306
补丁下载:
chs:WindowsServer2003-KB838306-x86-chs.exe">WindowsServer2003-KB838306-x86-chs.exe
enu:WindowsServer2003-KB838306-x86-enu.exe">WindowsServer2003-KB838306-x86-enu.exe
2.将access数据库扩展名改为asp
下面是我的差错过程和解决方案:
搜索一下发现类似问题还真不少,那个w3wp的进程是iis6.0的应用程序池,网上的说法有两种,一是因为asp或者asp.net代码中含有死循环引起的。但是服务器上这么多网站,谁知道那个网站出了问题。二是由于上面的jet连接数据库方式的bug引起的,下载838306的补丁,或者升级到sp1可以解决这个问题,但是打了这个补丁后,有些网站的问题依然存在。
又去搜索,有人说将每个网站建立独立的应用程序池,应用程序池的安全性帐户设为本地服务即可。方法如下:
首先新建应用程序池:
然后将网站的应用程序池指向刚才建立的应用程序池:
在建立完所有应用程序池后,统一修改应用程序池的属性:
将应用程序池安全帐户指定为本地服务:
设置完这些之后,问题依然存在,这样一个网站出现问题,不致影响其他网站,但是这个网站仍然占用大量资源,导致其它网站响应缓慢。不过在任务管理器中出现了每个应用程序池的进程,因此可以找到具体出问题的进程了。
下面是寻找出错网站的过程:要找到这个网站,必须把有问题的进程跟该网站的应用程序池联系起来。首先设置任务管理器的查看方式,加入PID的显示:
然后再命令行运行iisapp -a,可以看到PID跟应用程序池的对应关系:
再去iis中看该应用程序池对应的网站,有问题的网站就找到了,剩下的就是这个网站代码中的问题了。
在某位网站管理员的纠缠不休下,我终于无法忍受,帮他找错误- - 无数次配置iis,网站程序也换了,该升级的也升级了,问题还是存在,黔驴技穷,把网站下载到本地看看到底怎么回事。当我试图打开他的数据库的时候,问题出现了:
他的数据库是.asp的扩展名,要先修改为.mdb才能打开,但是当我点击要改名字的时候,我的电脑没有响应了~!看来问题在这个数据库了。
用命令行rename之后,打开数据库,修复,似乎没有任何问题,但是再改为.asp时,又出现了刚才的问题。哈~原来是.asp的扩展名在作怪。
但是我试着将其他的数据库改为.asp,没有问题。根本原因不得而知,望知情者告知。
最后,在iis中随便添加了一个isapi对应到mdb,造成mdb无法执行,防止下载,将所有的.asp的数据库改回.mdb,问题解决。
回复

使用道具 举报

cookiedog 发表于 2006-11-20 17:48:37 | 显示全部楼层
补丁下载不了……
回复

使用道具 举报

iioo2005 发表于 2006-11-24 20:55:58 | 显示全部楼层
这个帖子好,顶起~~~~~~~
回复

使用道具 举报

寅生 发表于 2006-11-24 21:03:22 | 显示全部楼层
跑php老是回收进程能解决问题吗?晕
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2025-1-11 07:07 , Processed in 0.025759 second(s), 4 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表