慎用System.Web.HttpContext.Current】的更多相关文章

每当控制流离开页面派生的Web表单上的代码的时候,HttpContext类的静态属性Current可能是有用的. 使用这个属性,我们可以获取当前请求(Request),响应(Response),会话(Session,)和应用程序对象(Application objects)以及请求更多服务. 以下面的代码为例. private void Page_Load(object sender, System.EventArgs e) { MyClass myClass = new MyClass();…
http://www.cnblogs.com/tianguook/archive/2010/09/27/1836988.html 自定义 HTTP 处理程序,从IHttpHandler继承,在写System.Web.HttpContext.Current.Session["Value"]的时 候,没有问题,但想将这个Session写到某个变量时或判断是否为空时 如:HttpContext.Current.Session["Value"]==null,发现Sessio…
ASP.NET提供了静态属性System.Web.HttpContext.Current,因此获取HttpContext对象就非常方便了.也正是因为这个原因,所以我们经常能见到直接访问System.Web.HttpContext.Current的代码: using System; using System.Collections.Generic; using System.Linq; using System.Web; namespace Test_HttpContext.Current { p…
HttpContext = (context == null ? new HttpContextWrapper(System.Web.HttpContext.Current) : context);…
做项目的时候,System.Web.HttpContext.Current.Server.MapPath("~/upload/SH")   获取路径本来这个方法用的好好的 因为需要实时的输出日志,我就使用了多线程,System.Web.HttpContext.Current.Server.MapPath()    他就报  未将对象引用设置为实例对象 在网上 找到 别人写的下面的方法 挺好用的 public static string MapPath(string strPath) {…
在自定义类库CS文件里使用System.Web.HttpContext.Current.Session获取Session时提示错误:未将对象引用设置到对象的实例. 一般情况下通过这种方式获取Session值不会有问题,不过应特别注意要使用session必须要page_load方法执行以建立了page对象以后才有session的使用目标,此时先检测Session是否为Null再调用值是不会提示错误的. 如果直接在Page页面中定义一个全局变量取Session的值就会提示未设置实例的错误!使用App…
自定义 HTTP 处理程序,从IHttpHandler继承,在写System.Web.HttpContext.Current.Session["Value"]的时 候,没有问题,但想将这个Session写到某个变量时或判断是否为空时 如:HttpContext.Current.Session["Value"]==null,发现Session的值为NULL,后来查MSDN,看到 “在自定义 HTTP 处理程序中实现 IRequiresSessionState 接口,以…
移动端使用Dio发送 FormData, 请求类型 multipart/form-data, FormData内可以一个或多个包含文件时. 请求接口时获取上传的fomdata数据使用 System.Web.HttpContext.Current.Request 接受时  报索引超出数组界限问题. 使用MultipartFormDataStreamProvider接受数据不受影响. 解决过程不多说.说多了都是泪.下面是解决方案 解决方法: 1.修改IIS的applicationhost.confi…
public static void SetRegisterSource() { if (System.Web.HttpContext.Current.Request["website"] != null) { string website = System.Web.HttpContext.Current.Request["website"]; SessionHelper.Set(COOKIE_RegisterSource, website); CookieHelp…
public static HttpContext Current { get { return ContextBase.Current as HttpContext; } set { ContextBase.Current = (object) value; } }   internal class ContextBase { internal static object Current { get { return CallContext.HostContext; } [SecurityPe…
ylbtech-System.Web.HttpContext.cs 1.程序集 System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a返回顶部 1. #region 程序集 System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a // C:\Program Files (x86)\Reference…
慎用System.Web.HttpContext.Current http://www.cnblogs.com/david1989/p/3879201.html 线程编程中用到HttpContext.Current的方法封装 http://www.cnblogs.com/xdotnet/archive/2007/06/25/aspnet_threading_httpcontext.html HttpContext只是个类名,HttpContext.Current才是一个已实例化的对象..比如这样…
先看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 在 await 异步执行之后,就会变为 null. 演示代码: public async Task<IEnumerable<string>> Get() { await DoWaitAsync(); DoWork(); return new string[] { "value1", "value2" }; } p…
我负责运维一个短信接口站点sms.调用上游短信供应商下发短信后,他们会给我们推送发送报告.报告是类似DELIVRD.DI:9432这样的码.为了方便识别,系统里有一个报告码与其描述的关系,一开始是写死在程序里的.这样的弊端是,后期每次添加了这个映射关系后,都要更新网站程序,增大了维护成本.为了降低维护成本,我做了改进方案.将这个映射关系保存到一个文本文件ReportCodeMapper.txt里,提供一个页面来允许修改这个文件的内容. 对于使用的逻辑,声明一个静态的Dictionary,初始化时…
先看MSDN上的解释: HttpContext.Current.Cache:为当前 HTTP 请求获取Cache对象. HttpRuntime.Cache:获取当前应用程序的Cache.  我们再用.NET Reflector工具看看HttpContext.Cache和HttpRuntime.Cache的实现: //HttpContext.Cache和HttpRuntime.Cache实现     //System.Web.HttpContext.Cache属性实现     public sea…
在写项目时想对asp.net的注册前台脚本事件进行封装,就添加了一个BasePage.cs页面,但一直报错‘非静态的字段.方法或属性“System.Web.UI.Page.ClientScript...”要求对象引用”’ 原写法: /// <summary> /// 显示客户端提示框 /// </summary> /// <param name="msg"></param> public static void ShowMsg(strin…
先看MSDN上的解释:      HttpContext.Current.Cache:为当前 HTTP 请求获取Cache对象.      HttpRuntime.Cache:获取当前应用程序的Cache.       我们再用.NET Reflector工具看看HttpContext.Cache和HttpRuntime.Cache的实现: HttpContext.Cache和HttpRuntime.Cache实现    //System.Web.HttpContext.Cache属性实现   …
在项目中需要记录文本日志,为了加快响应速度所以用到了多线程. 但是以前的方法是不支持多线程的,程序运行错误. 追踪代码发现提示HttpContext为空. 1.HttpContext.Current表示当前HttpRequest   对应的Context对象 httpContext.current在不同的httpRequest   中是变化的          也就是说用httpConext.current.items来保存的数据是不能跨页面传递的. 2.HttpContext.Current只…
据说要这样写才稳妥 // This principal will flow throughout the request.VoyagerPrincipal principal = new VoyagerPrincipal(yada, yada, yada); // Attach the new principal object to the current HttpContext objectHttpContext.Current.User = principal; // Make sure t…
多线程或者异步调用中如何访问HttpContext? 前面我还提到在APM模式下的异步完成回调时,访问HttpContext.Current也会返回null,那么此时该怎么办呢? 答案有二种:1. 在类型中添加一个字段来保存HttpContext的引用(异步开始前).2. 将HttpContext赋值给BeginXXX方法的最后一个参数(object state) 建议优先选择第二种方法,因为可以防止以后他人维护时数据成员被意外使用. 引用: 不错的文章:http://www.cnblogs.c…
原文地址:http://blog.csdn.net/avon520/article/details/4872704 .NET中Cache有两种调用方式:HttpContext.Current.Cache 和 HttpRuntime.Cache,这两种方式有什么区别呢?我们先看MSDN上的解释:      HttpContext.Current.Cache:为当前 HTTP 请求获取Cache对象.      HttpRuntime.Cache:获取当前应用程序的Cache. 我们再用.NET R…
在一个项目中,为了系统执行效率更快,把一个经常用到的数据库表通过dataset放到Application中,发现在异步实现中每一次都会出现HttpContext.Current为null的异常,后来在网上查了好多资料,发现问这个问题的人多,回答的少,回答的也多数都是:引用System.Web,不要用HttpContext.Current.Application应该用System.Web.HttpContext.Current.Application,后来在网上看到一篇关于System.Runti…
asp.net中处理程序调用System.Web.HttpContext.Current.Session获取Session时提示错误:未将对象引用设置到对象的实例. 解决办法:在处理程序文件类中实现IRequiresSessionState接口,如:public class sjzft : IHttpHandler, IRequiresSessionState{} 原理: 一般情况下通过这种方式获取Session值不会有问题,不过应特别注意要使用session必须要page_load方法执行以建…
多线程中的System.Web.HttpContext.Current.Server.MapPath("/") 多线程中Server.MapPath会失效... 网上找到几种解决方法,现在整理如下: 第一种: System.Web.HttpContext.Current.Server.MapPath("/")  这个常用来表示网站的根目录,但是在多线程中,会发生未将对象引用设置到对象的实例. 所以不要分布在不同的类中,尽量在一个全局位置,然后其它类共用这个,毕竟网站…
HttpRuntime.Cache:用于winfrom 和 web HttpContext.Current.Cache 用于web .NET中Cache有两种调用方式:HttpContext.Current.Cache 和 HttpRuntime.Cache,这两种方式有什么区别呢?我们先看MSDN上的解释:      HttpContext.Current.Cache:为当前 HTTP 请求获取Cache对象.      HttpRuntime.Cache:获取当前应用程序的Cache. 我们…
最近在开发一个后台管理系统项目,为了提高登录的速度,就把记录登录日志放到一个异步任务里面. Action taskAction = () => { SaveLog(); }; Task task = new Task(taskAction); task.Start(); 有一段时间日志记录是正常的,突然有一天就不work了,本地调试也能重现这个错误,是System.Web.HttpContext.Current为null造成的,获取不了当前的用户名. 在网上搜了一下,确实很多用户遇到了,有推荐缓…
本文来自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:获取当前…
在多线程中使用该方法获取目录报错:未将对象设置到引用 #region 上传图片到腾讯 public async Task<Result> UploadImageToWX(string background_pic_url) { var _result = new Result(); var token = GetWxGhAuthorizerAccessToken(AbpSession.ShopId); if (!token.success) { _result.Code = ; _result…
在.Net异步webApi中我们需要记录日志信息,需要获取客户端的ip地址,我们需要使用:HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];来获取客户端的ip地址,在调用异步方法(wait Task.Run(() =>{  }))前需要将主线程中获取的HttpContext.Current对象存至缓存(Cache)中达到多线程共享的目的.如果不是通过主线程获取HttpContext.Current对象将会报空指针…