PerWebRequest LifetimeManager和Beyond(Asp.net Mvc)

时间:2009-09-13 13:41:29

标签: asp.net-mvc unity-container

目前,我使用HttpContext.Current.Items作为后备存储创建了我的自定义PerWebRequestLifetimeManager。我使用了Linq2Sql DataContext的终身经理       Eveything工作正常,直到我需要使用Cache来存储数据(5分钟)。 5分钟后,我需要从数据库中检索数据并将其放入缓存中。为此,我需要使用Linq2Sql DataContext来检索数据。但在此期间,HttpContext.Current为null,因为缓存过期时发生了这种情况;不在Web请求中。
      那么,我应该在这种情况下使用什么样的LifetimeManager?

提前致谢。

1 个答案:

答案 0 :(得分:0)

您需要一个长期存在的DataConext?使用Container LifeTimeManager。我将创建一个驻留在应用程序级别的Container(可能在您的Global.asax中),然后使用它来解析此特定方案的DataContext。

我会避免希望在Cache中保留这些东西,相反,如果可以,你可以看看可能异步运行该任务。

希望这有帮助。