在项目中需要记录文本日志,为了加快响应速度所以用到了多线程。

但是以前的方法是不支持多线程的,程序运行错误。

追踪代码发现提示HttpContext为空。

1.HttpContext.Current表示当前HttpRequest   对应的Context对象

httpContext.current在不同的httpRequest   中是变化的  
       也就是说用httpConext.current.items来保存的数据是不能跨页面传递的。

2.HttpContext.Current只能从当前正在执行的线程中返回值

3.HttpContext.Current   
     这个会跟Thread.CurrentContext相关,多线程切换的时候   
     HttpContext.Current会被替换为当前线程的Context的。

一般会用到System.Web.HttpContext.Current.Server.MapPath方法,这时就不能用了所以可以用

System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, strPath);代替

还有一个就是文件操作不要用静态方法,会造成文件占用等问题。

转载于:https://www.cnblogs.com/PLifeCopyDown/p/3935429.html

多线程下HttpContext.Current 的问题相关推荐

  1. HttpContext.Current:异步模式下的疑似陷阱之源

    最近园子里首页有好几篇文章都是讲异步编程的,尤其是几篇讲博客园自身的异步化建设的文章,看了以后很有收获. 闲暇之余再重新查查资料温故知新学习一遍,重新认识了SynchronizationContext ...

  2. .NET | 多线程下的调用上下文 : CallContext

    [.NET]| 总结/Edison Zhou 最近在分析现在团队的项目代码(基于.NET Framework 4.5),经常发现一个CallContext的调用,记得多年前的时候用到了它,但是印象已经 ...

  3. HttpContext.Current.Cache vs. HttpRuntime.Cache

    .NET中Cache有两种调用方式:HttpContext.Current.Cache 和 HttpRuntime.Cache,这两种方式有什么区别呢?我们先看MSDN上的解释:       Http ...

  4. 多线程下C#如何保证线程安全?

    多线程编程相对于单线程会出现一个特有的问题,就是线程安全的问题.所谓的线程安全,就是如果你的代码所在的进程中有多个线程在同时运行,而这些线程可能会同时运行这段代码.如果每次运行结果和单线程运行的结果是 ...

  5. HttpContext 来源(System.Web.HttpContext.Current值为null的问题)

    转大神文档:https://www.cnblogs.com/linJie1930906722/p/5708966.html ASP.NET提供了静态属性System.Web.HttpContext.C ...

  6. HttpContext.Current.Cache和HttpRuntime.Cache的区别,以及System.Runtime.Caching

    先看MSDN上的解释:       HttpContext.Current.Cache:为当前 HTTP 请求获取Cache对象.       HttpRuntime.Cache:获取当前应用程序的C ...

  7. System.Web.HttpContext.Current.Session为NULL解决方法

    http://www.cnblogs.com/tianguook/archive/2010/09/27/1836988.html 自定义 HTTP 处理程序,从IHttpHandler继承,在写Sys ...

  8. Why is HttpContext.Current null after await?

    今天在对项目代码进行异步化改进的时候,遇到一个奇怪的问题(莫笑,以前没遇过),正如标题一样,HttpContext.Current 在 await 异步执行之后,就会变为 null. 演示代码: pu ...

  9. java race condition_java 多线程下race condition问题

    这个问题的讨论来自内部的一个关于"多线程环境下使用Hashmap的安全问题"的讨论,HashMap多线程的问题之前已经提过一次,见之前的blog.本篇文章主要讨论多线程下race ...

最新文章

  1. 爬虫必备工具,掌握它就解决了一半的问题
  2. 电大最全计算机应用技术基础答案,电大最新最全计算机应用技术基础答案100%通过率...
  3. 云数据管理公“云信达”获东方富海数千万A轮投资
  4. HTML5学习笔记(二)2015-12-7
  5. gateway sentinel 熔断 不起作用_《一起学sentinel》一
  6. D3D中的粒子系统(4)
  7. ios开发 热搜词demo_一场比赛16个热搜,uzi因焕烽躺枪,阿bin评价赛后太揪心
  8. 升级ASP.Net Core项目
  9. 前端学习(3023):vue+element今日头条管理-首页layont布局
  10. python实现Trie 树+朴素匹配字符串+RK算法匹配字符串+kmp算法匹配字符串
  11. mysql、sqlserver、oracle各数据类型与java类型对应
  12. onu光功率多少是正常_ONU、机顶盒、路由器常见网络问题及处理方法
  13. 去掉状态条并全屏_机关单位内必须懂的道理:20条潜规则和13条定律
  14. Python 多线程基本步骤
  15. 落实安全生产责任,施工单位双重预防体系智能化管理解决方案
  16. removeclass 传入两个类_jQuery removeClass() 方法
  17. oracle 考试资料,Oracle考试复习题
  18. 屏蔽百度搜索结果页的推送广告
  19. r语言做绘制精美pcoa图_PCOA分析
  20. 概念:伪随机数、种子以及C中的随机函数

热门文章

  1. linux 网络io命令详解,Linux下五种网络IO模型详解
  2. oracle windows server 2008,Node.js 在 Windows Server 2008 X64 连接Oracle 数据库
  3. 安装python37路径报错_解决pycharm安装python库报错问题
  4. (并查集)The Suspects
  5. 大学生计算机社团该办什么活动,大学生社团活动策划方案
  6. anaconda3 tensorflow安装踩坑记(WIN10+tensorflow带gpu版本)
  7. mysql timestamp排序_对多个表进行排序MYSQL TimeStamp
  8. 打开python环境_windows下切换Python运行环境。
  9. jboss mysql驱动目录_找不到mysql.jdbc.Driver – MySQL,JBoss
  10. c++ windows 蓝牙库_蓝牙翻页笔(PPT 控制器) | ESP32学习之旅-Arduino版