0

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

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

4

2 回答 2

1

在您开始缓存连接之前发生了什么?缓存它们是否会导致性能或资源利用率的任何可衡量的改进?考虑到 ADO.NET 会为您提供连接池,如果确实如此,我会有点惊讶。

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

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

于 2009-06-19T03:27:18.810 回答
0

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

于 2009-06-19T12:45:02.893 回答