How to make per- http Request cache in ASP.NET 3.5

2019-04-18 01:28发布

We using ASP.NET 3.5 (Controls-based approach) and need to have storage specific for one http request only.

Thread-specific cache with keys from session id won't work because threads are supposed to be pooled and therefore I have a chance to have data from some previous request in cache, which is undesirable in my case. I always need to have brand new storage for each request available through whole request.

Any ideas how to do it in ASP.NET 3.5?

3条回答
相关推荐>>
2楼-- · 2019-04-18 01:59

How about using the Context collection. This allows data to be shared between all your controls but only lasts for the request.

Use it like this context.Items("base_url") = "default.aspx"

查看更多
太酷不给撩
3楼-- · 2019-04-18 02:01

We have used HttpContext.Current.Items collection to do RequestScope caching. It works well.

查看更多
虎瘦雄心在
4楼-- · 2019-04-18 02:24

just to clarify what ggonsalv was referring to

http://msdn.microsoft.com/en-us/library/system.web.httpcontext.items.aspx

HttpContext.Items["key"] = value;

UPDATE: the mvc specific version

http://msdn.microsoft.com/en-us/library/system.web.mvc.controller.httpcontext(v=VS.100).aspx

查看更多
登录 后发表回答