PerWebRequest LifetimeManager 及其他 (Asp.net Mvc)

发布于 2024-08-05 01:42:01 字数 334 浏览 3 评论 0原文

目前,我使用 HttpContext.Current.Items 作为后备存储创建了自定义 PerWebRequestLifetimeManager。我将生命周期管理器用于 Linq2Sql DataContext。
一切工作正常,直到我需要使用缓存来存储数据(5 分钟)。 5 分钟后,我需要从数据库检索数据并将其放入缓存中。为此,我需要使用 Linq2Sql DataContext 来检索数据。但在此期间,HttpContext.Current 为 null,因为这是在缓存过期时发生的;不在网络请求中。
那么,对于这种场景我应该使用什么样的 LifetimeManager 呢?

提前致谢。

Currently, I created my custom PerWebRequestLifetimeManager using HttpContext.Current.Items as backing store. I used that lifetime manager for Linq2Sql DataContext.
Eveything is working fine until I need to use Cache for storing data (for 5 min). After 5 min, I need to retrieve data from DB and put it into the Cache. To do so, I need to use Linq2Sql DataContext for retrieving data. But during that time, HttpContext.Current is null because which was happened when cache is expired; not in Web Request.
So, what kind of LifetimeManager should I use for this scenario?

Thanks in advance.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

小姐丶请自重 2024-08-12 01:42:01

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

我会避免希望这些内容保留在缓存中,相反,如果可以的话,您可以考虑异步运行该任务。

希望这有帮助。

You need a long standing DataConext? Use a Container LifeTimeManager. I would create a Container that resides at the Application level (probably in your Global.asax) and then use that to resolve your DataContext for this specific scenario.

I would avoid hoping that stuff is retained in Cache, instead you could look at possibly running that task asynchronously if you can.

Hope this helps.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文