HttpContext在多线程异步调用中的使用方案

  1.在线程调用中,有时候会碰到操做文件之类的功能。对于开发人员来讲,他们并不知道网站会被部署在服务器的那个角落里面,所以根本没法肯定真实的物理路径(固然能够使用配置文件来配置物理路径),他们惟一知道的就是文件在项目中的相对路径,为了定位文件路径,通常都会调用HttpContext.Current.Request.MapPath或者HttpContext.Current.Server.MapPath,可是在多线程调用中,HttpContext确定为null,这时候还调用MapPath结果就是报错。html

  其实获取项目路径并不是只有HttpContext这一种方法,HttpRuntime.AppDomainAppPath也能够获取项目路径,并且也是更安全的选择。安全

  2.在APM模式下的异步完成回调时,访问HttpContext也会返回NULL,解决方案:服务器

  在类型中添加一个字段来报错HttpContext的引用(异步开始前)多线程

  将HttpContext赋值给BeginXXX方法的最后一个参数(object state)异步

  建议优先选择第二种方法,由于能够防止之后他人维护时数据成员被意外使用。网站

 

  原文地址:http://www.cnblogs.com/babycool/p/3749812.html线程

相关文章
相关标签/搜索