回收ASP.Net应用程序状态对象有哪些选项?我正在使用该对象来存储基于Web服务的数据访问层的数据库连接队列。我担心在几天/几周/几个月内,我最终会在不再使用的db的连接上分配不断增长的内存。根据需要自动生成连接,因此保留它们并不是非常重要。

选择性地解析应用程序状态并删除我不需要的东西会很酷。但在实际的基础上,简单地丢弃整个对象并开始新鲜也同样有效。但是,我需要注意清除过程不会终止当前使用的连接。

有帮助吗?

解决方案

在开始缓存连接之前发生了什么?缓存它们会导致性能或资源利用率的任何可衡量的改进吗?考虑到ADO.NET为你做连接池,我会有点惊讶。

应用程序状态没有回收选项。它是每服务器,每个AppDomain。

对于另一个缓存选项,请考虑使用Cache对象。它也是每个应用程序,但您可以将缓存条目设置为在一段时间后过期。

其他提示

我做了一些测试,看起来应用程序对象确实驻留在应用程序池中。 (回收应用程序池会清除应用程序对象中的数据。)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top