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线程