应该将ASP.NET应用程序池设置为自动回收?

前端之家收集整理的这篇文章主要介绍了应该将ASP.NET应用程序池设置为自动回收?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一些ASP.NET(4.0)Web应用程序似乎在每个请求期间泄漏(少量)的内存.这是一个很小的数量,对于大多数用例,它不会成长成为一个问题,一个星期甚至几个月.我通常尝试关闭应用程序管理的任何连接,避免状态变量(或单例的实例变量)等.

我的问题是这是ASP.NET应用程序的这种正常行为吗?我已经关闭了在空闲20分钟后回收应用程序池的默认(IIS 7)行为.我这样做是因为应用程序需要几分钟的时间来构建其内部缓存,我想避免对用户体验造成负面影响(并让他们等待应用程序在发出请求时启动).

我知道这可以通过序列化缓存或加快缓存生成过程来缓解,但是我的问题更多地与其原理相关:我个人认为依靠IIS自动回收功能作为带状方法.我错了吗?我只是没有看到垃圾收集器在工作,因为应用程序的内存使用量不够高,相比可用的内存量?或者我应该深入了解内存问题?

任何见解将不胜感激.

解决方法

不幸的是,这是正常的,虽然大多数是比其他任何事情要好的应用程序作者.

由于这个原因,默认情况下,IIS会将新创建的应用程序池配置为每1740分钟循环一次.

正如你所说,这是一个帮助.清除所有资源(包括悬挂事件处理程序)的一个很好的书面应用程序,根本不应该泄漏.

请参阅this博客文章.

猜你在找的asp.Net相关文章