原因:
1、改动global.asax、web.config、bin目录里面的东西,导致Web Application重启。
2、有些杀毒软件会扫描web.config文件,也会导致Session丢失。
3、服务器内存不足导致Session丢失。
4、程序内部有让Session失效的代码。
5、程序有框架页面和跨域情况。
解决方法:
1、修改web.config文件中timeout的时间。
2、让网站使用独立的应用程序池。
3、IIS设置Session超时时间:网站属性--主目录--配置--应用程序配置--选项,重新设置会话超时时间,默认为20分钟。
4、在应用程序池上打开网站对应的应用程序池属性,将Web数量改为1,然后重启IIS。
5、在页面中嵌入一个宽度高度为0的iframe,里面的加载页<head>里面加入<meta http-equiv="refresh" content="1080">,即每隔18分钟向服务器发送一次请求,刚好赶在默认20分钟失效时间前,保证Session不会失效。