【问题标题】:Recycling Options for ASP.Net Application State ObjectASP.Net 应用程序状态对象的回收选项
【发布时间】:2010-11-04 05:03:17
【问题描述】:

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

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

【问题讨论】:

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

标签: .net asp.net database-connection recycle application-state


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2010-09-23
      • 2021-11-08
      • 1970-01-01
      • 1970-01-01
      • 2011-01-12
      • 1970-01-01
      • 2020-05-23
      • 2016-07-31
      • 2011-08-22
      相关资源
      最近更新 更多