HttpContext.Current是否在Web应用程序中是否为空?

时间:2009-10-27 15:32:57

标签: asp.net

Web应用程序中的HttpContext.Current是否为null(假设未使用线程)?更具体地说,它会在void Application_OnError(object sender, EventArgs e)

中为空

3 个答案:

答案 0 :(得分:3)

请参阅this other question

  

在AcquireRequestState事件之前,会话未初始化,因此在此点之前发生的任何错误都不会有会话变量可用。

我认为这同样适用于HttpContext.Current作为HttpContext.Current.Session

所以是的,我认为HttpContext.Current在Application_OnError中有时可能为null

答案 1 :(得分:2)

IIS 7中有一些有趣的变化。在IIS6中,您在Application_Start中有一个HttpContext。从IIS7开始,情况就不再如此。

更多信息:

http://blogs.msdn.com/webtopics/archive/2009/02/12/webbaseevent-raise-method-fails-in-application-start-event-with-a-nullreferenceexception-on-iis-7-0.aspx

-Oisin

答案 2 :(得分:1)

我认为,例如,如果您分离工作线程,响应结束,工作线程抛出异常,就会发生这种情况。您的Application_OnError将捕获异常,但HttpContext.Current将为null。