HttpContext.Current的生命周期是多长?

时间:2019-11-20 08:09:07

标签: .net asp.net-mvc multithreading

我正在使用HttpContext.Current.User在收到请求时存储有关客户端的一些数据。

恐怕当HttpContext.Current意外为空并且我试图从HttpContext.Current.User中提取数据时,我可能会遇到NullObjectReferenceException

docomentation说有关HttpContext.Current,它是:

  

获取或设置当前HTTP请求的HttpContext对象。

在什么情况下HttpContext.Current可以设置为null?

1 个答案:

答案 0 :(得分:4)

您的scope is not part of a Requestnull

示例包括:

如果您在请求中执行这些操作,那应该没事。

如果您正在使用后台线程,或者钩住了不具有Request上下文的aspnet的其他部分,则静态HttpContext可能不适合您。还有其他的请求和响应上下文以及控制器上下文可能会更好。您还应该consider injecting这些things using a Container,或者在不知道执行上下文的情况下,wrap getting the user in an interface,以便可以更清晰地处理这些上下文方案。

This world is different in aspnet Core,所以我假设您是指aspnet Framework。