HttpContext HttpRuntime
问题引出
HttpContext.Current.Cache .VS. HttpRuntime.Cache
- HttpRuntime.Cache:获取当前应用程序的Cache
- HttpContext.Current.Cache:为当前HTTP请求获取Cache对象,跨线程可用,在APM模式或创建了子线程的场景中不能用
HttpContext.Current.Cache 调用 HttpRuntime.Cache实现,两者指向同一 Cache对象:
- HttpRuntime.Cache相当于是缓存具体实现类,非Web应用下也可以使用
- HttpContext.Current.Cache是对缓存类的封装,局限HttpContext只能用于Web应用
在某些情况下,HttpContext还没被创建出来为null,就只能用 HttpRuntime.Cache。
- 定时器的回调。
- Cache的移除通知。
- APM模式下异步完成回调。
- 主动创建线程或者将任务交给线程池来执行
建议使用 HttpRuntime.Cache,既能减少出错,也减少一次函数调用。
eg:在获取程序\站点的根目录时尽量使用 System.Web.HttpRuntime.AppDomainAppPath。
其中,关于 APM模式 参见:https://www.cnblogs.com/mcgrady/p/5660314.html
HttpContext
限制:同一Http请求
Server.Transfer .VS. Response.Redirect
Server.Transfer 请求跳转页面,归属同一个http请求,URL无变化,所有操作均在服务器完成;Response.Redirect 则是重新发起新的页面请求,需要浏览器和服务器交互。
具体参见:HttpContext 初识;
HttpContext.Current 由其维护
System.Runtime.Remoting.Messaging.CallContext.HostContext as HttpContext
其中,CallContext.HostContext 表示:获取或设置与当前线程相关联的主机上下文 。
- HttpContext.Current 并非无处不在
- 我所知道的HttpContext.Current:推荐
APM模式下的异步完成回调,访问HttpContext.Current方法:推荐第2种方法
- 在类型中添加一个字段来保存HttpContext的引用(异步开始前)
- 将HttpContext赋值给BeginXXX方法的最后一个参数(object state)
HttpRuntime
使用时建议自行封装,可参见:ASP.Net HttpRuntime.Cache 使用总结;
获取或设置与当前线程相关联的主机上下文
转载于:https://www.cnblogs.com/wjcx-sqh/p/11093956.html
HttpContext HttpRuntime相关推荐
- HttpContext.Current.Cache vs. HttpRuntime.Cache
.NET中Cache有两种调用方式:HttpContext.Current.Cache 和 HttpRuntime.Cache,这两种方式有什么区别呢?我们先看MSDN上的解释: Http ...
- HttpContext.Current.Cache和HttpRuntime.Cache的区别,以及System.Runtime.Caching
先看MSDN上的解释: HttpContext.Current.Cache:为当前 HTTP 请求获取Cache对象. HttpRuntime.Cache:获取当前应用程序的C ...
- 缓存通用管理类 + 缓存 HttpContext.Current.Cache 和 HttpRuntime.Cache 的区别
以前写asp.net时用HttpContext.Current.Cache存缓存很好用,今天写了一个windows服务程序,HttpContext.Current.Cache存缓存的时候还好,取的时候 ...
- MVC之前的那点事儿系列(2):HttpRuntime详解分析(上)
文章内容 从上章文章都知道,asp.net是运行在HttpRuntime里的,但是从CLR如何进入HttpRuntime的,可能大家都不太清晰.本章节就是通过深入分析.Net4的源码来展示其中的重要步 ...
- Asp.net中的Cache--HttpRuntim.Cache 和 HttpContext.Current.Cache
在ASP.NET中有两个类都提供缓存支持, 一个是HttpRuntime类的Cache属性, 另一个是HttpContext类的Cache属性. 通过查看这两个属性的类型可以发现其实这两个属性都是Sy ...
- HttpContext.Current.Cache 过期时间
HttpContext.Current.Cache 过期时间 原文:HttpContext.Current.Cache 过期时间 为了更快的读取数据,我们一般会把常用到的数据加载到Cache中 在.N ...
- 温故而知新:HttpApplication,HttpModule,HttpContext及Asp.Net页生命周期
IIS在接到一个新的http请求后,最终会调用asp.net_isapi.dll的ISAPI扩展(特指IIS6.0环境,iis7.0的应用程序池默认为集成方式,相对有所变化),然后传递到httpRun ...
- HttpContext 来源(System.Web.HttpContext.Current值为null的问题)
转大神文档:https://www.cnblogs.com/linJie1930906722/p/5708966.html ASP.NET提供了静态属性System.Web.HttpContext.C ...
- 老生又长谈:HttpApplication,HttpModule,HttpContext及Asp.Net页生命周期
IIS在接到一个新的http请求后,最终会调用asp.net_isapi.dll的ISAPI扩展(特指IIS6.0环境,iis7.0的应用程序池默认为集成方式,相对有所变化),然后传递到httpRun ...
最新文章
- c# groupbox大小,C# 实现可拖动和调整大小的控件
- Qt学习笔记之QString
- 20155307 实验四 Android程序设计
- 【SQL】表A多个字段,关联表B一个字段说明
- 阿里25k招.NET,要求WPF!
- ]数据结构:单链表之判断两个链表是否相交及求交点(带环、不带环)
- “摔杯一怒为俞渝” 当当创始人李国庆:蓄谋已久的阴谋 不吐不快
- Juniper srx系列防火墙端口限速
- UnityShader16:点光源和聚光灯
- 【C++】继承时构造函数和析构函数
- LED流水灯部分代码
- python有道批量单词音标整理-Python 批量翻译 使用有道api;
- 【三角】和差角公式的证明与积化和差和差化积公式的推导
- win10计算机如何切换用户名,如何修改电脑用户名,win10系统更改用户名方法
- javascript 获取汉字笔画拼音,使用笔画排序
- 设计模式 装饰模式(decorate)
- 用 Telegram bot 搭个消息提醒服务
- 如何给电脑安装双系统
- 性能测试结果分析思路
- 计算机无法启用媒体流,win10电脑媒体流启动不了怎么办_win10电脑媒体流无法启动解决方法-win7之家...
热门文章
- 02 - java 标识符命名规范
- 惠新宸php教程_百度PHP高级顾问惠新宸:PHP在百度的发展历程
- 服务器虚拟机密度,服务器整合:虚拟机密度大未必是好事
- 快速排序c语言实现,快速排序的C语言代码实现
- Linux(Ubuntu)设置系统时区
- 看完这篇文章,还不懂nginx,算我输
- git配置用户信息_git系列教程(4)-单用户配置
- python write 写多行_如何用 Python 执行单行命令
- Linux mysql.plugin_Linux下MySQL安装
- (DFS)棋盘问题(poj1321)