加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

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

发布时间:2020-12-15 20:02:00 所属栏目:asp.Net 来源:网络整理
导读:我有一些ASP.NET(4.0)Web应用程序似乎在每个请求期间泄漏(少量)的内存.这是一个很小的数量,对于大多数用例,它不会成长成为一个问题,一个星期甚至几个月.我通常尝试关闭应用程序管理的任何连接,避免状态变量(或单例的实例变量)等. 我的问题是这是ASP.NET应用
我有一些ASP.NET(4.0)Web应用程序似乎在每个请求期间泄漏(少量)的内存.这是一个很小的数量,对于大多数用例,它不会成长成为一个问题,一个星期甚至几个月.我通常尝试关闭应用程序管理的任何连接,避免状态变量(或单例的实例变量)等.

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

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

任何见解将不胜感激.

解决方法

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

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

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

请参阅this博客文章.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读