多线程下使用HttpContext.Current.Cache.Get(key) 获取缓存时抛出null错误

解决办法如下:

 1   /// <summary>
 2         /// 获取缓存对象
 3         /// </summary>
 4         /// <param name="key">缓存Key</param>
 5         /// <returns>object对象</returns>
 6         public static object Get(string key)
 7         {
 8             if (string.IsNullOrEmpty(key))
 9             {
10                 return null;
11             }
12             //将HttpContext.Current.Cache.Get(key) 替换成HttpRuntime.Cache.Get(key) 在多线程下调取缓存的时候就不会抛NULL错误
13             return HttpRuntime.Cache.Get(key);
14         }

两者区别:

HttpRuntime.Cache是应用程序级别的, Web和非Web程序都可以使用.

HttpContext.Current.Cache是针对当前WEB上下文定义的,只能在wen程序下使用.

 

时间: 2024-10-24 18:44:32

多线程下使用HttpContext.Current.Cache.Get(key) 获取缓存时抛出null错误的相关文章

ASP.NET多线程下使用HttpContext.Current为null解决方案

多线程或者异步调用中如何访问HttpContext? 前面我还提到在APM模式下的异步完成回调时,访问HttpContext.Current也会返回null,那么此时该怎么办呢? 答案有二种:1. 在类型中添加一个字段来保存HttpContext的引用(异步开始前).2. 将HttpContext赋值给BeginXXX方法的最后一个参数(object state) 建议优先选择第二种方法,因为可以防止以后他人维护时数据成员被意外使用. 引用: 不错的文章:http://www.cnblogs.c

ASP.NET多线程下使用HttpContext.Current

本来要实现asp.net下使用tcp通讯方式向服务器获取数据,开始采用的方式是 参考: ASP.NET多线程下使用HttpContext.Current为null解决方案 http://www.cnblogs.com/zfanlong1314/p/3890428.html

Cache及(HttpRuntime.Cache与HttpContext.Current.Cache)

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/avon520/archive/2009/11/25/4872704.aspx .NET中Cache有两种调用方式:HttpContext.Current.Cache 和 HttpRuntime.Cache,这两种方式有什么区别呢?我们先看MSDN上的解释:      HttpContext.Current.Cache:为当前 HTTP 请求获取Cache对象.      HttpRuntime.Cache:获取当前

HttpContext.Current.Cache和HttpRuntime.Cache的区别,以及System.Runtime.Caching

先看MSDN上的解释:      HttpContext.Current.Cache:为当前 HTTP 请求获取Cache对象.      HttpRuntime.Cache:获取当前应用程序的Cache.       我们再用.NET Reflector工具看看HttpContext.Cache和HttpRuntime.Cache的实现: HttpContext.Cache和HttpRuntime.Cache实现    //System.Web.HttpContext.Cache属性实现   

缓存 HttpContext.Current.Cache和HttpRuntime.Cache的区别

先看MSDN上的解释:HttpContext.Current.Cache:为当前 HTTP 请求获取Cache对象.HttpRuntime.Cache:获取当前应用程序的Cache. 我们再用.NET Reflector工具看看HttpContext.Cache和HttpRuntime.Cache的实现://HttpContext.Cache和HttpRuntime.Cache实现    //System.Web.HttpContext.Cache属性实现    public sealed cl

HttpContext.Current.Cache 和HttpRuntime.Cache的区别

先看MSDN上的解释:      HttpContext.Current.Cache:为当前 HTTP 请求获取Cache对象.      HttpRuntime.Cache:获取当前应用程序的Cache.       我们再用.NET Reflector工具看看HttpContext.Cache和HttpRuntime.Cache的实现: HttpContext.Cache和HttpRuntime.Cache实现    //System.Web.HttpContext.Cache属性实现   

.Net Cache及(HttpRuntime.Cache与HttpContext.Current.Cache的区别)

因为程序中用到 在当前会话上下文中缓存多个数据库的需求,所有查了下资料. 我们在.NET运用中经常用到缓存(Cache)对象.除了System.Web.Caching下的Cache外,我们还可以用到HttpContext.Current.Cache以及HttpRuntime.Cache那么,HttpContext.Current.Cache以及HttpRuntime.Cache有什么区别呢?从MSDN上的解释可以看出,HttpRuntime.Cache是应用程序级别的,而HttpContext.

HttpContext.Current.Cache 过期时间

原文:HttpContext.Current.Cache 过期时间 为了更快的读取数据,我们一般会把常用到的数据加载到Cache中 在.NET中,Cache的存在可以依赖多中方式,主要用到HttpContext.Current.Cache类 在这里,我主要写几种依赖方式 1:不依赖任何条件 HttpContext.Current.Cache.Insert(string cacheName,object obj) 理论上是Cache会永久保存,但是当服务器重新启动,内存紧张的时候也会丢失. 2:H

Asp.net中的Cache--HttpRuntim.Cache 和 HttpContext.Current.Cache

在ASP.NET中有两个类都提供缓存支持, 一个是HttpRuntime类的Cache属性, 另一个是HttpContext类的Cache属性. 通过查看这两个属性的类型可以发现其实这两个属性都是System.Web.Caching.Cache类的实例.那为什么需要同时提供两种支持呢? 查询MSDN后发先,这两个缓存的应用的场景不一样, HttpRuntime.Cache是应用程序级别的缓存, HttpContext.Current.Cache是针对Web上下文定义的, 是一个局部的缓存.(这段