webconfig配置SessionState有四种模式:off,inProc,StateServer,SQLServer.
1.off模式
意思是关闭模式,表示当前页面不需要session的值,可以减少服务器资源的使用,去掉session的开销。
<%@ Page EnableSessionState="false"%>
2.inProc模式
它允许无cookie的对话,以及在服务器之外存储数据。
sessionState mode = "inProc" timeout="1"/>
//tiemout单位为分钟
END里面不能出现Server.MapPath(“xxx”);,如有请放在开始端。
测试可用Session.Abandon();//注销Session。
用END的优点是:无论用户是否正常注销还是异常退出,其sessionid失效都会触发END,因为session是保存在server的,不会出现意外。
删除用户临时文件代码:
//存储path
//文件路径
List<string> paths = new List<string>();
paths.Add(Server.MapPath("temp/" + Session.SessionID + "_a.png"));//二值化文件
paths.Add(Server.MapPath("temp/" + Session.SessionID + "_b.png"));//纹理消除文件
paths.Add(Server.MapPath("temp/" + Session.SessionID + "_search.png"));//搜索结果文件
paths.Add(Server.MapPath("temp/" + Session.SessionID + "_i1.png"));//图像分割文件1
paths.Add(Server.MapPath("temp/" + Session.SessionID + "_i2.png"));//图像分割文件2
paths.Add(Server.MapPath("temp/" + Session.SessionID + "_i3.png"));//图像分割文件3
paths.Add(Server.MapPath("temp/" + Session.SessionID + "_i4.png"));//图像分割文件4
Session.Add("paths", paths);
----------------------------------------------------------------------------------------------------------------------
// 在会话结束时运行的代码。
// 注意: 只有在 Web.config 文件中的 sessionstate 模式设置为
// InProc 时,才会引发 Session_End 事件。如果会话模式设置为 StateServer
// 或 SQLServer,则不会引发该事件。
//删除本次会话产生的临时文件
//文件路径
List<string> pathes = (List<string>)Session["paths"];
//删除
foreach(string path in pathes)
File.Delete(path);
}