asp.net2.0 网站过一段时间就要重启IIS才能解决??急急急

时间:2021-10-13 04:39:17
进入系统一段时间之后,就自动提示退出,再登录便捕捉到错误“未将对象引用设置到的实例”!!!
环境是 win2003 + iis6

24 个解决方案

#1


代码问题,不是IIS和WINDOWS的问题。

#2


给点提示,或解决方案

#3


Session过期

#4


好像听说过,有没有放开网站对访问人数的限制?

#5


可能是Session过期

#6


你跟踪一下代码,应该是session过期导致一些与登录人有关的对象不能正确使用!

#7


我想也是会话问题,把Session 存储在数据库中最稳定,但是这种方式对网站性能不利

#8


在windows 任务管理器中查看

w3wp.exe 和 sqlserver.exe 占用的资源比较大,前者是 75096k  后者是 72720k

#9


误“未将对象引用设置到的实例”!!! 看下是不是代码问题调试跟踪下

#10


明显代码问题…………

#11


代码有问题,好好调试一下

#12


代码跟踪没出现问题,有一个情况是,里面大用 session里面大量引用,因为有类似进货开票这样的录入界面,作为临时数据存储,并应用的比较频繁

谁能出个方案解决这个问题呀??
一天重启IIS十几次,我快崩溃了!!!


救命呀 

#13


我也是会碰到,还不确定到底什么原因

#14


Session过期,重新登录就好了,也不用重启IIS吧
可能还是代码问题,不要在Session中频繁保存复杂对象,可以使用SessionState来存储,不过这样要求所有Session对象都要可序列化

#15


Session过期,可以设置一个错误页面,发生错误或者过期就指向这个错误页面,提示重新登陆!

#16


还有一种可能是,程序池里数值设置的大一点,回收时间长一点,或者指定一个时间回收

#17


写代码的时候得判断一些情况可能导致对象为空值就去赋值了,比如Session过期了,如果不判断一下就赋值给一些控件就会出现这种情况。

#18


服务器上W3WP.EXE进程占用资源太大的问题
情况一:
环境:WIN2003 P4 3000,1G内存,DELL服务器;
现象:在服务器任务管理器里观察,发现进程w3wp.exe占用资源比较大,刚开始启动服务时有30M左右,人员上到30M左右时,资源占到120M~130M多,这时候会出现客户端自动退出或登录不进去的情况。
 

解决:
在试了各种方法之后,最后确定一种方案,如下:
把WEB服务与数据服务部署在两台机器上,如上图所示,于2008年9月28日测试,w3wp.exe的内存占用没有超过60M。

情况二:
原来WEB服务与数据服务器部署在同一台机器上的时,与部署在两台机器上之后发现一个情况。
原来的环境中,w3wp.exe占用资源一直增大,但并不自动回收,直到iis卡死
在新环境中,w3wp.exe竟然自动回收,即占用的资源很快可自动回收。
所以怀疑原来的服务器是否有问题???(但两个机器的操作系统都是重新做的,并系统过程中并未出现任何意外情况)。

#19


感谢大家的参与,也希望最后的解决方法对同行有参考价值。

#20


你开发时没有人提醒你注意到所谓的“Session丢失”,或者你没有当回事,那么其实真的很遗憾。这确实耽误事。

iis以及asp.net的重启是正常的系统维护工作。许多事情都会使得重启,例如服务器运行时有一点小毛病,或者网站下一些文件改变了(只有app_data目录下的才可以确保不会造成系统重启)。服务商经常需要为网站设置一些参数,例如某个网站占用CPU达到5%,或者虚拟内存达到200M,或者累计连接数达到200,就是重启的时候了。

所以,开发中小型asp.net程序,你首先不应该使用Session集合来持久保存数据(也不能当作Cache同类,因为Cache会在内存不足时自动“遗忘”一些数据,而Session则霸占内存直到引起应用被强行重启)。没有人告诉你从一开始“不要使用Session”是一种遗憾。那些入门书上的例子只是例子而已。

你去找各种硬件啊,系统啊的原因,这就好像用钱去填赌徒的窟窿,填不满的。如果你让iis和asp.net不能适当地进行自我维护,那么你实际上反而会吃亏。所以,我建议你除了去简单地加大内存,不要对系统进行所谓的“设置”。微软的东西不像公司的东西那样需要高薪养系统一大堆配置人员,如果你配置来配置去都不解决问题,那么就回复默认设置吧。 你编程时就不应该使用Session集合

#21


微软的东西不像公司的东西那样  -->  微软的东西不像一些别的开发操作系统的公司的东西那样

#22


我也遇上这问题了

#23


引用 20 楼 sp1234 的回复:
你开发时没有人提醒你注意到所谓的“Session丢失”,或者你没有当回事,那么其实真的很遗憾。这确实耽误事。

iis以及asp.net的重启是正常的系统维护工作。许多事情都会使得重启,例如服务器运行时有一点小毛病,或者网站下一些文件改变了(只有app_data目录下的才可以确保不会造成系统重启)。服务商经常需要为网站设置一些参数,例如某个网站占用CPU达到5%,或者虚拟内存达到200M,或者累计连接数达到200,就是重启的时候了。…


举个例子哈~~~~~

#24


接着讨论吧

#1


代码问题,不是IIS和WINDOWS的问题。

#2


给点提示,或解决方案

#3


Session过期

#4


好像听说过,有没有放开网站对访问人数的限制?

#5


可能是Session过期

#6


你跟踪一下代码,应该是session过期导致一些与登录人有关的对象不能正确使用!

#7


我想也是会话问题,把Session 存储在数据库中最稳定,但是这种方式对网站性能不利

#8


在windows 任务管理器中查看

w3wp.exe 和 sqlserver.exe 占用的资源比较大,前者是 75096k  后者是 72720k

#9


误“未将对象引用设置到的实例”!!! 看下是不是代码问题调试跟踪下

#10


明显代码问题…………

#11


代码有问题,好好调试一下

#12


代码跟踪没出现问题,有一个情况是,里面大用 session里面大量引用,因为有类似进货开票这样的录入界面,作为临时数据存储,并应用的比较频繁

谁能出个方案解决这个问题呀??
一天重启IIS十几次,我快崩溃了!!!


救命呀 

#13


我也是会碰到,还不确定到底什么原因

#14


Session过期,重新登录就好了,也不用重启IIS吧
可能还是代码问题,不要在Session中频繁保存复杂对象,可以使用SessionState来存储,不过这样要求所有Session对象都要可序列化

#15


Session过期,可以设置一个错误页面,发生错误或者过期就指向这个错误页面,提示重新登陆!

#16


还有一种可能是,程序池里数值设置的大一点,回收时间长一点,或者指定一个时间回收

#17


写代码的时候得判断一些情况可能导致对象为空值就去赋值了,比如Session过期了,如果不判断一下就赋值给一些控件就会出现这种情况。

#18


服务器上W3WP.EXE进程占用资源太大的问题
情况一:
环境:WIN2003 P4 3000,1G内存,DELL服务器;
现象:在服务器任务管理器里观察,发现进程w3wp.exe占用资源比较大,刚开始启动服务时有30M左右,人员上到30M左右时,资源占到120M~130M多,这时候会出现客户端自动退出或登录不进去的情况。
 

解决:
在试了各种方法之后,最后确定一种方案,如下:
把WEB服务与数据服务部署在两台机器上,如上图所示,于2008年9月28日测试,w3wp.exe的内存占用没有超过60M。

情况二:
原来WEB服务与数据服务器部署在同一台机器上的时,与部署在两台机器上之后发现一个情况。
原来的环境中,w3wp.exe占用资源一直增大,但并不自动回收,直到iis卡死
在新环境中,w3wp.exe竟然自动回收,即占用的资源很快可自动回收。
所以怀疑原来的服务器是否有问题???(但两个机器的操作系统都是重新做的,并系统过程中并未出现任何意外情况)。

#19


感谢大家的参与,也希望最后的解决方法对同行有参考价值。

#20


你开发时没有人提醒你注意到所谓的“Session丢失”,或者你没有当回事,那么其实真的很遗憾。这确实耽误事。

iis以及asp.net的重启是正常的系统维护工作。许多事情都会使得重启,例如服务器运行时有一点小毛病,或者网站下一些文件改变了(只有app_data目录下的才可以确保不会造成系统重启)。服务商经常需要为网站设置一些参数,例如某个网站占用CPU达到5%,或者虚拟内存达到200M,或者累计连接数达到200,就是重启的时候了。

所以,开发中小型asp.net程序,你首先不应该使用Session集合来持久保存数据(也不能当作Cache同类,因为Cache会在内存不足时自动“遗忘”一些数据,而Session则霸占内存直到引起应用被强行重启)。没有人告诉你从一开始“不要使用Session”是一种遗憾。那些入门书上的例子只是例子而已。

你去找各种硬件啊,系统啊的原因,这就好像用钱去填赌徒的窟窿,填不满的。如果你让iis和asp.net不能适当地进行自我维护,那么你实际上反而会吃亏。所以,我建议你除了去简单地加大内存,不要对系统进行所谓的“设置”。微软的东西不像公司的东西那样需要高薪养系统一大堆配置人员,如果你配置来配置去都不解决问题,那么就回复默认设置吧。 你编程时就不应该使用Session集合

#21


微软的东西不像公司的东西那样  -->  微软的东西不像一些别的开发操作系统的公司的东西那样

#22


我也遇上这问题了

#23


引用 20 楼 sp1234 的回复:
你开发时没有人提醒你注意到所谓的“Session丢失”,或者你没有当回事,那么其实真的很遗憾。这确实耽误事。

iis以及asp.net的重启是正常的系统维护工作。许多事情都会使得重启,例如服务器运行时有一点小毛病,或者网站下一些文件改变了(只有app_data目录下的才可以确保不会造成系统重启)。服务商经常需要为网站设置一些参数,例如某个网站占用CPU达到5%,或者虚拟内存达到200M,或者累计连接数达到200,就是重启的时候了。…


举个例子哈~~~~~

#24


接着讨论吧