Session为空的问题.求助
小弟最近学习框架的做法.重写了httpModule中的方法.并在Web.config中设置了
<httpHandlers> <clear /></httpHandlers><httpModules> <clear /> <add name="HttpModule" type="Xy.Web.HttpModule,Xy.Web" /></httpModules>
HttpApplication.Context.Session
HttpContext.Current.Session
public class SessionModule : IHttpModule { public void Init(HttpApplication context) { context.BeginRequest += BeginTransaction; context.EndRequest += CommitAndCloseSession; context.PreRequestHandlerExecute += PreRequestHandlerExecute; } public void Dispose() { } public void PreRequestHandlerExecute(object sender, EventArgs e) { var context = ((HttpApplication)sender).Context; context.Session["some_sesion"] = new SomeObject(); }...}
[解决办法]
如果在HttpModule中使用session,则必需在加载在
HttpModule.AcquireRequestState()
|
HttpModule.PreRequestHandlerExecute()
否则是读取不到Session.
参见
http://forums.asp.net/p/1098574/1665773.aspx