2011-05-24 75 views
0

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

回答

1

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

只要没有太多它们,你应该可以......但是你总是可以用内存分析器验证它是否看到它们有多大,以及它们是否吸收了太多的内存。

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