您的位置:首页 > 其它

配置win2003 server IIS的总结,为什么IIs的工作进程会在空闲时间释放的问题。同时学会了throw的真正含义,throw的真正含义就是导致程序停止,崩溃,很简单,网摘也有记录。

2011-01-16 18:59 1021 查看
项目背景:242后期,别人写的代码出现问题,我测试中发现的。

当时在内存中设立了一个队列,用arrylist存放任务队列,但是经过一段时间后,发现队列中信息没有了,还以为是出现异常的原因,最后,在网友的帮助下,通过在Application_Start(),Application_End()内部写测试方法,最终找到了问题的答案。。

同时学会了throw的真正含义,以及什么情况下使用throw,加深了,try catch的理解,同时增加了对调试时日志的记录的重要性的认识。。

下面是我跟网友的聊天记录:

,多亏了昨晚你的提示,通过在Application_Start(),Application_End()记录日志来判断工作进程是否退出。经过多次测试,总结如下:(1)如果长时间没有操作网站,工作进程会自动退出,这时Application_End()会被调用,当然保存在进程中的队列信息就没有了。(2)如果点击网站后,网站出现异常,我写的代码没有做异常处理即没做catch,这时,网站也不会崩溃,仍然可以正常访问其它网页,估计是IIS采取了防护措施,在代码外部捕捉了异常。

我 22:17:49

IIS的应用程序池的属性有工作进程回收的时间设置。这个可以调,所以以后在开发程序时,一些重要的信息还是保存在数据库或文件中,否则,工作进程退出后,这些信息就没有了。。

我 22:18:47

否则,工作进程退出后,保存在内存中的一些信息就随着进程的回收或中断丢失了。。

也就是说,网站在IIS的工作进程回收的时间内没有访问的话,IIS会自动将网站重启咯

我12:02:35

网站在IIS的工作进程回收的时间内没有访问的话,不是重启,而是关闭。application_end方法会调用。直到有用户访问的话,再调用application_start()。

帮我调程序热心肠 12:02:28

哦哦哦

我是你的影迷 12:03:58

别人写的程序,把信息保存到内存中,一段时间发现这个信息没了,现在才找到是这个原因,我把回收的设置关闭了。现在就没问题了。

以下是参考文献:
http://winsvr.org/info/info.php?sessid=&infoid=39&page=4网站主进程退出 http://www.pxue.com/Html/1005.html
IIS增加了许多错误处理,比如如果I代码出现了异常,即时是throw,IIS会在最外部进行捕获,不会影响其他用户的访问,即程序不会崩溃。。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐