栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

为什么HttpContext.Current为null?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

为什么HttpContext.Current为null?

显然

HttpContext.Current
null
不仅是在处理传入请求的线程中访问它。这就是为什么“当我在页面的另一个类中使用此代码时”起作用的原因。

它不会在与调度相关的类中起作用,因为相关代码不是在有效线程上执行,而是在没有HTTP上下文关联的后台线程上执行。

总的来说,不要

Application["Setting"]
用来存储全局的东西,因为它们并不像您发现的那样是全局的。

如果需要将某些信息向下传递到业务逻辑层,请作为参数传递给相关方法。不要让您的业务逻辑层访问诸如

HttpContext
或之类的东西
Application["Settings"]
,因为这违反了隔离和解耦的原则。

更新:由于引入了

async/await
此类问题的机率更高,因此您可以考虑以下提示,

通常,仅应

HttpContext.Current
在少数情况下(例如,在HTTP模块中)调用。在所有其他情况下,您应使用

  • Page.Context
    https://docs.microsoft.com/zh-cn/dotnet/api/system.web.ui.page.context?view=netframework-4.7.2
  • Controller.HttpContext
    https://docs.microsoft.com/zh-cn/dotnet/api/system.web.mvc.controller.httpcontext?view=aspnet-mvc-5.2

代替

HttpContext.Current



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/442673.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号