这篇文章为长期观察并更新
1.长期无用户访问网页,asp.net 会自动进入application_end事件(时间长短可以配置iis)
2.修改web.config文件
3.删除该站点下的文件夹之后,会自动进入application_end
4.修改了bin目录下的文件
5.重启iis
具体的可以先参考这篇文章:
iis 7 应用程序池自动回收关闭的解决方案
如果你正在做asp.net,那肯定会用到iis 如果你想在asp.net application中加入某个定时任务,那想必一定是用一个线程在不停地做定时计算 那假设我们在自己的asp.net应用程序中加入了quartz.net框架,并且配置等等都ok了。 这个站点访问量很少,现在只有几个人上班的时候才会使用,结果第二天过来一看,后台调度的线程和计算任务都停止了,如果你抓取了application_end事件,会发现这个事件居然被调用了。
那一定是iis的应用程序池回收的机制在作怪了。因为iis的默认设置里面,如果一个站点所处的应用程序池超过一段时间没有被访问或者请求,iis就会自动回收这个程序池,并且把进程杀掉。那进程里面的线程肯定也活不下来了。
但是我们可以通过设置应用程序池参数使其不会被简单的自动回收(有些情况无法避免,比如热部署的站点,错误数量超限等等)
在iis中找到这个站点所用的程序池,点击“高级设置...” 在打开的列表中更改以下设置:
回收——固定时间间隔(分钟) 改为 0
——虚拟/专用内存限制(kb) 改为 0
进程模型——闲置超时(分钟) 改为 0
这样子,一般情况下程序池就不会被自动回收了,后台一些简单的计算线程就会正常工作
到此这篇关于iis7 应用程序池自动回收关闭的解决方案的文章就介绍到这了,更多相关iis应用程序池自动回收关闭内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论