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

我有一些ASP.NET(4.0)Web应用程序似乎在每个请求期间泄漏(少量)的内存.这是一个很小的数量,对于大多数用例,它不会成长成为一个问题,一个星期甚至几个月.我通常尝试关闭应用程序管理的任何连接,避免状态变量(或单例的实例变量)等.

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

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

任何见解将不胜感激.

解决方法

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

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

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

请参阅this博客文章.

相关文章

### 创建一个gRPC服务项目(grpc服务端)和一个 webapi项目(...
一、SiganlR 使用的协议类型 1.websocket即时通讯协议 2.Ser...
.Net 6 WebApi 项目 在Linux系统上 打包成Docker镜像,发布为...
一、 PD简介PowerDesigner 是一个集所有现代建模技术于一身的...
一、存储过程 存储过程就像数据库中运行的方法(函数) 优点:...
一、Ueditor的下载 1、百度编辑器下载地址:http://ueditor....