2009-09-13 40 views
0

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

在此先感谢。

回答

0

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

我会避免希望东西保留在缓存中,而是可以看看是否可以异步运行该任务。

希望这会有所帮助。