開啓:
其實單純的開啓session非常簡單,只要在Global文件中加入下面的內容就可以了:
public override void Init()
{
base.Init();
PostAuthenticateRequest += MvcApplication_PostAuthenticateRequest;
}
private void MvcApplication_PostAuthenticateRequest(object sender, EventArgs e)
{
HttpContext.Current.SetSessionStateBehavior(System.Web.SessionState.SessionStateBehavior.Required);
}
問題:
(1)採用httpwebrequest對webapi進行訪問時,首次對session的調用會失敗,即上一次已經向session中寫入數據了依然會在下一次調用中失敗。失敗過一次之後即可正常調用
解決方法:
在Global文件中加入以下代碼:
protected void Session_Start(object sender, EventArgs e)
{
string sessionId = Session.SessionID;
//據說可能是因爲當Session_start事件開始執行時,SessionID沒有來得及被創建,所以加上這句來強制創建SessionID
}