0

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

4

1 回答 1

1

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

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

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

于 2011-05-24T12:16:38.093 回答