2011-05-24 78 views
0

我已經開始在這個.NET Web應用程序中工作,它有一個IOC容器(Windsor)來創建業務經理,並將它們保存在內存中,直到IIS回收它們。基本上這些業務經理都擁有自己的狀態,並且數據的內容是從Application_Start觸發的後臺線程修改的。這不是我期望Web應用程序能夠工作的方式(對於每個請求,這應該是無狀態和每個線程),我不太確定此實現是否可持續/可擴展。如果有的話,是否有人以這種方式嘗試過這些事情?你看到了什麼後果/優點?IOC容器和Web應用程序

回答

1

我們在應用程序中使用靜態,僅用於核心功能。靜態類在所有請求之間共享,所以可用性應該低一些。在開發世界中,我們看到靜態數據越來越多:ASP.NET MVC 3將它們用於應用程序的各個領域以及其他流行的OS源庫。

只要沒有太多它們,你應該可以......但是你總是可以用內存分析器驗證它是否看到它們有多大,以及它們是否吸收了太多的內存。

另一種方法是將它們放入緩存中,或重建它們並將它們存儲在每個請求中。要將其全局存儲在請求中,請使用HttpContext.Current.Items集合。