开启:
其实单纯的开启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
}