线程那些坑 - HttpContext】的更多相关文章

之前记录Log的时候,直接把经常用过的Log帮助类拷贝过来直接用,其中日志的填写路径要么是固定值,然后读取配置文件,要么就是用上下文动态获 System.Web.HttpContext.Current.Server.MapPath()    ,正常情况下没什么问题,但是当用到线程时,这里获取到路径便是null,会直接运行错误,线程中,程序无法读取Current 对象值,所以解决办法要什么就是用固定路径,要么就是 string directPath = AppDomain.CurrentDomai…
网上流传了两种能强制结束线程的错误姿势 第一种:通过setDaemon来结束线程 http://www.cnblogs.com/jefferybest/archive/2011/10/09/2204050.html import threading import time def mythread(timeout,func): tHandle = threading.Thread(target=func) tHandle.setDaemon(True) tHandle.start() tHand…
在asp.net中,HttpContext是主线程内唯一对象.在web应用中开启多线程,在另外一个线程中是无法访问HttpContext. 如果需要在另外一个线程中使用HttpContext.Current.Request.MapPath("/a.txt")来获取文件的物理路径,可以使用: HostingEnvironment.MapPath("/a.txt")来获取物理路径…
在一次请求中,即一个线程内,若是用到EF数据上下文对象,就创建一个,这也加是很多人的代码中习惯在使用上下文对象时,习惯将对象建立在using中,也是为了尽早释放上下文对象, 但是如果有一个业务逻辑调用了多个dal层的方法,交互数据库多次,这样效率会低一些,而且在使用EF的情况下,我们通常把SaveChange这个方法提到业务逻辑层(下文中会提到),不保证同一个业务逻辑使用的是同一个上下文对象,事务,工作单元模式将无法实现.而且可能造成数据混乱,每次创建的对象执行相应的数据库操作,与此同时,同一次…
1.ef添加完这个对象,就会自动返回这个对象数据库的内容,比如下面这个表是自增ID 最后打印出来的ID  就是自增的结果 2.lambda 中怎么select * var userInfoList = from u in db.UserInfo select u; 3.返回类型 IQueryable<T> 它继承 IEnumerable<T> 相当于集合 延迟加载机制  用到的时候才去数据库查 4.两种删除标记 db.UserInfo.Remove(userInfo); db.En…
摘要 HttpContext上下文并不是无处不在的.详情可以看下Fish Li的文章,解释的比较清楚. HttpContext.Current并非无处不在 问题复现 public async Task<ActionResult> Home() { return await Task.Factory.StartNew(() => { var context = System.Web.HttpContext.Current; System.Web.HttpContext context2 =…
在MVC中,HttpContext.Current是比较常见的对象,可以用它来进行Session,Cache等的保存等.但是它并不是无处不在的,下面就慢慢来揭开它的面纱. 当我们向服务端发送请求的时候,页面会响应我们的请求,比如我们访问A页面,那么服务端就会把A页面通过处理后返回给我们,访问B页面,过程同样.在这里,我们访问A页面和访问B页面,总共进行了2次请求,这两次请求会不会是在同一个页面线程中呢?因为Asp.net模型本身就是多线程模式的,那么让我们来做一个实验: 首先,创建一个Asp.n…
了解ASP.NET的开发人员都知道它有个非常强大的对象 HttpContext,而且为了方便,ASP.NET还为它提供了一个静态属性HttpContext.Current来访问它,今天的博客打算就从HttpContext.Current说起.   无处不在的HttpContext 由于ASP.NET提供了静态属性HttpContext.Current,因此获取HttpContext对象就非常方便了.也正是因为这个原因,所以我们经常能见到直接访问HttpContext.Current的代码: pu…
1.在web网站的Global中,进行数据量比较大的初始化工作,而为了使用户在页面上能够及时响应,我们在Global中开启了一个线程执行该函数模块. 不过,在线程中用到HttpContext.Current出现了空异常,分析得知,HttpContext.Current如果使用多线程的话,需将其作为参数传递,不能直接引用.…
阅读目录 开始 无处不在的HttpContext HttpContext.Current到底保存在哪里? HttpContext并非无处不在! 如何获取文件绝对路径? 异步调用中如何访问HttpContext? 安全地使用HttpContext.Current 了解ASP.NET的开发人员都知道它有个非常强大的对象 HttpContext,而且为了方便,ASP.NET还为它提供了一个静态属性HttpContext.Current来访问它, 今天的博客打算就从HttpContext.Current…