代碼如上。是在global中的一個重寫HttpApplication方法,就這麼簡單。 原理就是在管道第九個事件AcquireRequestState之前,require session state.因為第九個事件就準備開始獲取session. 如果你在第九個事件或者第九個事件之後才註冊,那麼一定會
public override void Init() { //在註冊管道事件中 require session state //只能在引發“HttpApplication.AcquireRequestState”之前調用“HttpContext.SetSessionStateBehavior”。 this.BeginRequest += (sender, e) => HttpContext.Current.SetSessionStateBehavior(SessionStateBehavior.Required); base.Init(); }
代碼如上。是在global中的一個重寫HttpApplication方法,就這麼簡單。
原理就是在管道第九個事件AcquireRequestState之前,require session state.因為第九個事件就準備開始獲取session.
如果你在第九個事件或者第九個事件之後才註冊,那麼一定會報如下錯誤:只能在引發“HttpApplication.AcquireRequestState”之前調用“HttpContext.SetSessionStateBehavior”。
關於請求管道,推薦一篇園友的文章:Asp.Net請求處理之管道