win2003 server +sqlserver2000 +IIS+ asp网站 隔一段时间就要重启服务器问题

时间:2022-01-28 07:09:48
win2003   server   +sqlserver2000   +IIS+   asp网站 每隔一段时间(有时几天一次,有时一天几次)就无法打开网站,重新启动服务器后,又可以访问了。

经测试:在局域网里无法访问服务器上的网站时,服务器本身也无法访问本网站,但本网站下的x.htm网页是可以访问/浏览的,但x.asp文件不可以访问,同时iis下的另一asp.net网站又可以正常访问。就是我这个asp网站不好访问。同时服务器的其它使用sql server的c/s架构的应用软件也工作正常,在服务器网站无法打开时好像sql server也是工作正常的,但在事件查看器中sql server好像有个警告:“supersocket 信息:(spnregister):error 1355。”

考虑到其它网站、及使用sql server的应用软件都可以正常工作,就是在打开我这个asp网站时长时间没有相应,然后无法打开网站,我怀疑是不是因为
Set conn = Server.CreateObject("ADODB.Connection")
set rs=server.createobject("adodb.recordset")
后没有及时调用
rs.close
conn.close   
因此在所有rs.open 调用后都及时调用了close语句,不过好像没有效果。而且现在好像重启的频率越来越快了(以前一个礼拜重启一次,现在一天要重启两次了)。

这个问题该如何解决呀?

24 个解决方案

#1


看看你的程序里面的循环语句
怀疑是死循环造成的,如果重启iis可解决问题的话

#2


你的IIS的进程占用多少内存?CPU?

#3


iis在进程里的名字是什么?占用的内存、cpu应该不高,所有程序cup总共的使用率在30%一下。内存占最高的是w3cp什么的,好像是iis的日志文件150M左右,和sql server < 150M 应该不算多,任务管理器上显示的提交更改大约为 512M/1024M   

#4


服务器重启?

俺的环境就是这样的,没有出现过类似的情况。

你哪里到底加载了些什么服务?

你应该向楼上的同志学习下,看看到底是什么程序占用的资源是非常巨大的。如果非常巨大的程序,就应该是有问题的

本人昨天使用VBS给服务器的东西添加某种服务,该死的服务器一段脚本跑了10多分钟……但是,服务器没有任何问题。

实在不行,你些个重启IIS的bat文件让windows按照一定时间执行下就好了

#5


在IIs下在我的网站上点击停止,再点击启动,不能解决问题

#6


对了,应该不是iis,还有站点正常。也不是数据库的问题,不清楚了。

#7


w3wp.exe是web服务器的运行程序

#8


你哪种方式根本不可能解决问题

如果是IIS的问题,重启iis才是王道

但是如果是其他的问题,那就不好意思了,可能是服务器的操作系统有问题了。请使用杀毒软件杀毒

如果有可能请抽过耐心安装系统吧

#9


重启iis应该使用命令行模式中输入iisreset进行

#10


学习!

上次服务器上报有病毒,但被杀掉了,服务器上装了瑞星的杀毒软件和防火墙,自动升级的。

#11


再问一下
Set   conn   =   Server.CreateObject("ADODB.Connection") 
set   rs=server.createobject("adodb.recordset") 
及rs.open
后如果不
rs.close 
conn.close
回造成这种问题吗?       

#12


你这个现象是我碰到过的.不过已经解决了.是内存不足导致,通常也叫做内存泄露,是在服务器配置不高,然后SQL数据访问比较大的情况下产生,LZ所说的数据连接的关闭是一定要注意的问题,不要以为没有效果旧放弃,数据连接不关闭是很占资源的,我的几个具体解决方法如下:
1)首先检查代码,看是否有过多没用的 <include>以及<内框架>理论上<内框架>应该少用因为占资源比较大,还要经常检查是否有不正常的脚本在访问你的页面时加载了其它页面.
2)根据一些方法优化代码,比如检查是否每次连接数据库都有关闭语句,比如request不要直接使用先把值赋给变量再做处理等等.
3)最重要的就是这点了,通过你的描述,我觉得跟我以前出现的情况一样,那就是服务器WEB服务中SQL数据交换比较频繁,导致内存不够,如果你不想改变或者更新服务器配置的话,那么按照下面的方法做:
我的服务器总内存只有512M 
我将sql   server服务器属性内存设置中如下设置: 
      1)   使用固定内存大小选上,固定内存设为247 
      2)   为sql   server保留物理内存勾上 
            最小查询内存我设置为2000000KB 
然后将IIS中的应用程序池设置定时回收工作进程,最大使用内存我也勾上了设置成了128M 
按照如上设置以后服务器连续运行了一个星期没有出现问题,网站也随时能打开,物理内存可用数一直保持在1000000KB以上和系统缓存基本持平. 

最后..你要随时关注服务器的"任务管理器"中的性能,就会发现每次WEB打不开,要重启服务器时,可用内存都是很低很低的,因此以上的方法也只能暂时缓解..随着你的网站访问量的增加,首要考虑的还是更新服务器配置.

#13


一个是病毒 
还有可能就是程序问题 死循环 IIS会自动

#14


可能某一个程序文件死循环

#15


一般不用重启服务器或iis服务的,重启程序池就可以了,每个独立的程序池都会占用一个w3wp.exe的进程,可以用iisapp指令根据pid查看具体那个进程对应哪个程序池.
很难确定你的网站问题到底出在哪里,怀疑是某些文件读取不正常,可以尝试用filemon工具监测一下.

#16


简单短期的解决方法就是重启IIS以及SQL服务器...关键是SQL服务器重启,可用内存马上就恢复了

#17


不好意思,前几天有事,没上来,sorry

非常感谢大家的回复!

现在最新的情况是:每次服务器不好启动时,运行iisreset后又可以正常工作了。

to:enterpc 
我的情况确实跟你的很像,1.在asp中确实用了不少<include > ,2.WEB服务中SQL数据交换比较频繁(我的网站确实操作sql 比较频繁),3.我的服务器内存也是512M。
  不同点是1.网站无法打开时sql server是可用的,c/s架构的程序操作sql server是正常的,2.WEB打不开时我感觉占用的内存也不算大
  我会按照你的方法再试一下。
  顺便问一下iisreset 或其它工具可不可以只重启动我的网站,而不启动别的网站?

#18


更正:现在最新的情况是:每次网站打不开时,运行iisreset后又可以正常工作了。

#19


几年前就碰到了,跟病毒无关的,跟程序本身也无关,当时的情况是html的能访问,ASP的不能访问,好象是什么缓存问题,在注册表修改就可以,把值调大一点,这个情况在win2000上不会出现,但是在2003上就会出现,具体的我忘了是改哪边了,楼主自己查查看!

#20


应该是程序写的有错误,导致占用大量服务器资源,因此要隔一段重新启动服务器。
检查自己的程序把

#21


楼上的正确,你的程序存在一点小问题,日积月累,问题就出来了(你感觉得到的问题)

检查程序,看看问题出在那里

#22


如果是程序问题,应该时间长了才会有问题,可是有的时候一天要重启几次,相隔时间不长,而且有时候无法打开的时候服务器看上去一切正常,CPU、内存占用都不高,sql server可以正常工作,机器反应速度也正常,而且网站每天用来用去就用那几个功能。

to:lvangel 
  不知道兄弟能不能想起来怎么调的?或哪里有这方面的资料?

郁闷了,看来要一行一行检查代码了。
   

#23


不好意思这段时间冰冻.很久没上来了..这个问题..如果认为SQL的关系不大..那么楼主你可查一下你的IIS日志记录..在外界访问你这个有问题的B/S系统的所有记录,你这种情况我估计:
一)就是内存泄露
  解决方法从程序上着手,看有没有连接没关闭.有哪些访问SQL的地方需要优化..包括框架问题
二)就是有非法访问
  解决方法从程序上着手的同时,服务器也的安全设置也要到位.
三)服务器配置过低,B/S有一定的访问量造成服务器运行效率下降
  最可能的就是这点..512的内存..你上面居然还有很多B/S加C/S系统并且都在使用..这应该就是问题的终结所在,我们单位的服务器现在配置还是没升.但是问题已基本上没出现过了..以前半天就要重启下IIS.后来变成1天重启一次,最后变成1个星期.现在都不用重启了.,其根本原因就是我们单位网站现在访问量好低..每天只有不到1000的独立IP访问量,总访问量在2000-3000左右.想以前至少每天有5000的独立IP访问量,..升级硬件吧..不要在烦恼自己了..!!!!!

#24


引用 19 楼 lvangel 的回复:
几年前就碰到了,跟病毒无关的,跟程序本身也无关,当时的情况是html的能访问,ASP的不能访问,好象是什么缓存问题,在注册表修改就可以,把值调大一点,这个情况在win2000上不会出现,但是在2003上就会出现,具体的我忘了是改哪边了,楼主自己查查看!

我的问题估计是这位老兄说的一样

#1


看看你的程序里面的循环语句
怀疑是死循环造成的,如果重启iis可解决问题的话

#2


你的IIS的进程占用多少内存?CPU?

#3


iis在进程里的名字是什么?占用的内存、cpu应该不高,所有程序cup总共的使用率在30%一下。内存占最高的是w3cp什么的,好像是iis的日志文件150M左右,和sql server < 150M 应该不算多,任务管理器上显示的提交更改大约为 512M/1024M   

#4


服务器重启?

俺的环境就是这样的,没有出现过类似的情况。

你哪里到底加载了些什么服务?

你应该向楼上的同志学习下,看看到底是什么程序占用的资源是非常巨大的。如果非常巨大的程序,就应该是有问题的

本人昨天使用VBS给服务器的东西添加某种服务,该死的服务器一段脚本跑了10多分钟……但是,服务器没有任何问题。

实在不行,你些个重启IIS的bat文件让windows按照一定时间执行下就好了

#5


在IIs下在我的网站上点击停止,再点击启动,不能解决问题

#6


对了,应该不是iis,还有站点正常。也不是数据库的问题,不清楚了。

#7


w3wp.exe是web服务器的运行程序

#8


你哪种方式根本不可能解决问题

如果是IIS的问题,重启iis才是王道

但是如果是其他的问题,那就不好意思了,可能是服务器的操作系统有问题了。请使用杀毒软件杀毒

如果有可能请抽过耐心安装系统吧

#9


重启iis应该使用命令行模式中输入iisreset进行

#10


学习!

上次服务器上报有病毒,但被杀掉了,服务器上装了瑞星的杀毒软件和防火墙,自动升级的。

#11


再问一下
Set   conn   =   Server.CreateObject("ADODB.Connection") 
set   rs=server.createobject("adodb.recordset") 
及rs.open
后如果不
rs.close 
conn.close
回造成这种问题吗?       

#12


你这个现象是我碰到过的.不过已经解决了.是内存不足导致,通常也叫做内存泄露,是在服务器配置不高,然后SQL数据访问比较大的情况下产生,LZ所说的数据连接的关闭是一定要注意的问题,不要以为没有效果旧放弃,数据连接不关闭是很占资源的,我的几个具体解决方法如下:
1)首先检查代码,看是否有过多没用的 <include>以及<内框架>理论上<内框架>应该少用因为占资源比较大,还要经常检查是否有不正常的脚本在访问你的页面时加载了其它页面.
2)根据一些方法优化代码,比如检查是否每次连接数据库都有关闭语句,比如request不要直接使用先把值赋给变量再做处理等等.
3)最重要的就是这点了,通过你的描述,我觉得跟我以前出现的情况一样,那就是服务器WEB服务中SQL数据交换比较频繁,导致内存不够,如果你不想改变或者更新服务器配置的话,那么按照下面的方法做:
我的服务器总内存只有512M 
我将sql   server服务器属性内存设置中如下设置: 
      1)   使用固定内存大小选上,固定内存设为247 
      2)   为sql   server保留物理内存勾上 
            最小查询内存我设置为2000000KB 
然后将IIS中的应用程序池设置定时回收工作进程,最大使用内存我也勾上了设置成了128M 
按照如上设置以后服务器连续运行了一个星期没有出现问题,网站也随时能打开,物理内存可用数一直保持在1000000KB以上和系统缓存基本持平. 

最后..你要随时关注服务器的"任务管理器"中的性能,就会发现每次WEB打不开,要重启服务器时,可用内存都是很低很低的,因此以上的方法也只能暂时缓解..随着你的网站访问量的增加,首要考虑的还是更新服务器配置.

#13


一个是病毒 
还有可能就是程序问题 死循环 IIS会自动

#14


可能某一个程序文件死循环

#15


一般不用重启服务器或iis服务的,重启程序池就可以了,每个独立的程序池都会占用一个w3wp.exe的进程,可以用iisapp指令根据pid查看具体那个进程对应哪个程序池.
很难确定你的网站问题到底出在哪里,怀疑是某些文件读取不正常,可以尝试用filemon工具监测一下.

#16


简单短期的解决方法就是重启IIS以及SQL服务器...关键是SQL服务器重启,可用内存马上就恢复了

#17


不好意思,前几天有事,没上来,sorry

非常感谢大家的回复!

现在最新的情况是:每次服务器不好启动时,运行iisreset后又可以正常工作了。

to:enterpc 
我的情况确实跟你的很像,1.在asp中确实用了不少<include > ,2.WEB服务中SQL数据交换比较频繁(我的网站确实操作sql 比较频繁),3.我的服务器内存也是512M。
  不同点是1.网站无法打开时sql server是可用的,c/s架构的程序操作sql server是正常的,2.WEB打不开时我感觉占用的内存也不算大
  我会按照你的方法再试一下。
  顺便问一下iisreset 或其它工具可不可以只重启动我的网站,而不启动别的网站?

#18


更正:现在最新的情况是:每次网站打不开时,运行iisreset后又可以正常工作了。

#19


几年前就碰到了,跟病毒无关的,跟程序本身也无关,当时的情况是html的能访问,ASP的不能访问,好象是什么缓存问题,在注册表修改就可以,把值调大一点,这个情况在win2000上不会出现,但是在2003上就会出现,具体的我忘了是改哪边了,楼主自己查查看!

#20


应该是程序写的有错误,导致占用大量服务器资源,因此要隔一段重新启动服务器。
检查自己的程序把

#21


楼上的正确,你的程序存在一点小问题,日积月累,问题就出来了(你感觉得到的问题)

检查程序,看看问题出在那里

#22


如果是程序问题,应该时间长了才会有问题,可是有的时候一天要重启几次,相隔时间不长,而且有时候无法打开的时候服务器看上去一切正常,CPU、内存占用都不高,sql server可以正常工作,机器反应速度也正常,而且网站每天用来用去就用那几个功能。

to:lvangel 
  不知道兄弟能不能想起来怎么调的?或哪里有这方面的资料?

郁闷了,看来要一行一行检查代码了。
   

#23


不好意思这段时间冰冻.很久没上来了..这个问题..如果认为SQL的关系不大..那么楼主你可查一下你的IIS日志记录..在外界访问你这个有问题的B/S系统的所有记录,你这种情况我估计:
一)就是内存泄露
  解决方法从程序上着手,看有没有连接没关闭.有哪些访问SQL的地方需要优化..包括框架问题
二)就是有非法访问
  解决方法从程序上着手的同时,服务器也的安全设置也要到位.
三)服务器配置过低,B/S有一定的访问量造成服务器运行效率下降
  最可能的就是这点..512的内存..你上面居然还有很多B/S加C/S系统并且都在使用..这应该就是问题的终结所在,我们单位的服务器现在配置还是没升.但是问题已基本上没出现过了..以前半天就要重启下IIS.后来变成1天重启一次,最后变成1个星期.现在都不用重启了.,其根本原因就是我们单位网站现在访问量好低..每天只有不到1000的独立IP访问量,总访问量在2000-3000左右.想以前至少每天有5000的独立IP访问量,..升级硬件吧..不要在烦恼自己了..!!!!!

#24


引用 19 楼 lvangel 的回复:
几年前就碰到了,跟病毒无关的,跟程序本身也无关,当时的情况是html的能访问,ASP的不能访问,好象是什么缓存问题,在注册表修改就可以,把值调大一点,这个情况在win2000上不会出现,但是在2003上就会出现,具体的我忘了是改哪边了,楼主自己查查看!

我的问题估计是这位老兄说的一样