在Page类的构造函数里, 为什么HttpContext.Current.Session是null?

2005-08-25 by 开心就好

(兼回答CSDN论坛的一个问题)

因为Session是在HttpApplication的AcquireRequestState事件后才有的,而Page类(或其他HttpHandler)的对象是在此之前生成的,看一下HttpApplication的事件次序

BeginRequest
AuthenticateRequest
AuthorizeRequest
ResolveRequestCache
----Page类(或其他HttpHandler)的对象在此生成
<font color="#ff0000">AcquireRequestState</font><font color="#ff0000">
</font>
PreRequestHandlerExecute
----Page类(或其他HttpHandler)的对象的ProcessRequest
PostRequestHandlerExecute
ReleaseRequestState
UpdateRequestCache
EndRequest

如果你想深入了解ASP.NET处理请求过程,参考Rick Strahl的文章

A low-level Look at the ASP.NET Architecture


Comments