当前位置:  开发笔记 > 后端 > 正文

是什么原因导致IIS中的应用程序池回收?

如何解决《是什么原因导致IIS中的应用程序池回收?》经验,为你挑选了3个好方法。

我一直在寻找这方面的信息无济于事.我需要这个的背景是我在这里问的另一个问题.更具体地说,在App_Data中创建/更新/删除文件会导致池回收吗?

如果有人能提供导致回收的详细清单,那就太好了.

更新:由于两个用户已经注意到我也很乐意回答指定仅回收AppDomain而不是整个池的原因.



1> Mitchel Sell..:

你喜欢的另一篇文章实际上做得很好.

立即回收

Web.config更改

Machine.config更改

Global.asax发生了变化

Bin目录更改

App_Code更改

延迟回收

可能会在其他位置发生多处更改,通常情况下,我只注意到.aspx或.cs/.vb文件的更改.添加临时文本,csv或其他文件并没有给我带来问题.

注意:这些都是应用程序域回收,而不是池的实际回收.通常,应用程序POOL将仅基于IIS中的设置(请求数,内存限制,空闲时间或计划重新启动)进行回收.



2> stephbu..:

两种不同的效果 - AppPool进程是潜在多个appdomains的主机.通常,这可以通过许多效果来回收,例如时间 - 每隔'n'小时,缺少请求,内存使用等.在IIS配置管理器中配置.

AppDomain - 应用程序根目录的托管实例,可以更频繁地循环,而不会影响AppPool中的其他AppDomain.Tess在AppDomain回收上的帖子非常有见地

http://blogs.msdn.com/tess/archive/2006/08/02/asp-net-case-study-lost-session-variables-and-appdomain-recycles.aspx

您正在写入监视重新编译的文件夹 - 这将在某个时刻触发appdomain重新创建.

事件日志将帮助您确定启动回收的原因.



3> Christopher ..:

您可能想要打开完整的AppPool回收事件日志:

cscript adsutil.vbs Set w3svc/AppPools/DefaultAppPool/LogEventOnRecycle 255 

您还可以查看这篇Scott Guthrie博客文章:http://weblogs.asp.net/scottgu/archive/2005/12/14/433194.aspx,它展示了如何在Global.ASAX中编写代码来记录Application.End事件的实际原因.

这对于我们诊断几个棘手的问题非常有用 - 一个特别是一个将日志文件写入wwwroot目录的应用程序 - 太多文件更改导致回收...

推荐阅读
凹凸曼00威威_694
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有