【问题标题】:IOC Containers and Web applicationsIOC 容器和 Web 应用程序
【发布时间】:2011-05-24 10:35:20
【问题描述】:

我已经开始研究这个 .NET Web 应用程序,它有一个 IOC 容器 (Windsor) 来创建业务管理器,并将它们保存在内存中,直到 IIS 回收它们。基本上,这些业务经理有自己的状态,其内容是从 Application_Start 触发的后台线程修改的数据。这不是我期望 Web 应用程序工作的方式(它应该是无状态的并且每个请求的每个线程),我不太确定这个实现是否可持续/可扩展。有没有人以这种方式尝试过这些事情,如果是的话,你看到的后果/优点是什么?

【问题讨论】:

    标签: asp.net web-applications castle-windsor stateful


    【解决方案1】:

    我们在应用程序中使用静态,仅用于核心功能。静态类在所有请求之间共享,因此可用性应该有点低。在开发领域,我们看到越来越多的静态变量出现:ASP.NET MVC 3 将它们用于应用程序的各个领域,以及其他流行的 OS 源库。

    只要它们不是很多,你应该没问题...但是你总是可以使用内存分析器来验证它们有多大,以及它们是否吸收了太多内存。

    另一种选择是将它们放在缓存中,或者重建它们并将它们存储在每个请求中。要将它们全局存储在请求中,请使用 HttpContext.Current.Items 集合。

    【讨论】:

      猜你喜欢
      • 2013-02-09
      • 1970-01-01
      • 2012-12-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多