Session过期问题

session|问题

SessionState 的Timeout),其主要原因有三种。
一:有些杀病毒软件会去扫描您的Web.Config文件,那时Session肯定掉,这是微软的说法。
二:程序内部里有让Session掉失的代码,及服务器内存不足产生的。
三:程序有框架页面和跨域情况。
第一种解决办法是:使杀病毒软件屏蔽扫描Web.Config文件(程序运行时自己也不要去编辑它)
第二种是检查代码有无Session.Abandon()之类的。
第三种是在Window服务中将ASP.NET State Service 启动。

http://community.csdn.net/Expert/topic/3100/3100218.xml?temp=.4426386
还有可能就是你在测试期间改动了,网站的文件。

我测试过没有问题!测试程序如下:
protected void Application_Start(Object sender, EventArgs e)
??{
???SqlConnection con = new SqlConnection("server=localhost;database=YourDatabase;uid=sa;pwd=;");
???SqlCommand cmd = new SqlCommand(string.Format("insert into table1 (c) values('{0}')","Application_Start"+DateTime.Now.ToLongTimeString()+"application id"+Application.ToString()),con);
???con.Open();
???cmd.ExecuteNonQuery();
???con.Close();

??}
?
??protected void Session_Start(Object sender, EventArgs e)
??{
???SqlConnection con = new SqlConnection("server=localhost;database=YourDatabase;uid=sa;pwd=;");
???SqlCommand cmd = new SqlCommand(string.Format("insert into table1 (c) values('{0}')","Session_Start"+DateTime.Now.ToLongTimeString()+"SessionID="+Session.SessionID),con);
???con.Open();
???cmd.ExecuteNonQuery();
???con.Close();

??}

??protected void Application_BeginRequest(Object sender, EventArgs e)
??{
???SqlConnection con = new SqlConnection("server=localhost;database=YourDatabase;uid=sa;pwd=;");
???SqlCommand cmd = new SqlCommand(string.Format("insert into table1 (c) values('{0}')","Application_BeginRequest"+DateTime.Now.ToLongTimeString()),con);
???con.Open();
???cmd.ExecuteNonQuery();
???con.Close();

??}

??protected void Application_EndRequest(Object sender, EventArgs e)
??{
???SqlConnection con = new SqlConnection("server=localhost;database=YourDatabase;uid=sa;pwd=;");
???SqlCommand cmd = new SqlCommand(string.Format("insert into table1 (c) values('{0}')","Application_EndRequest"+DateTime.Now.ToLongTimeString()),con);
???con.Open();
???cmd.ExecuteNonQuery();
???con.Close();

??}

??protected void Application_AuthenticateRequest(Object sender, EventArgs e)
??{

??}

??protected void Application_Error(Object sender, EventArgs e)
??{

??}

??protected void Session_End(Object sender, EventArgs e)
??{
???SqlConnection con = new SqlConnection("server=localhost;database=YourDatabase;uid=sa;pwd=;");
???SqlCommand cmd = new SqlCommand(string.Format("insert into table1 (c) values('{0}')","Session_End"+DateTime.Now.ToLongTimeString()+"SessionID="+Session.SessionID),con);
???con.Open();
???cmd.ExecuteNonQuery();
???con.Close();

??}

??protected void Application_End(Object sender, EventArgs e)
??{
???SqlConnection con = new SqlConnection("server=localhost;database=YourDatabase;uid=sa;pwd=;");
???SqlCommand cmd = new SqlCommand(string.Format("insert into table1 (c) values('{0}')","Application_End"+DateTime.Now.ToLongTimeString()),con);
???con.Open();
???cmd.ExecuteNonQuery();
???con.Close();

??}

所有的代码都是Global里面的

时间: 2024-12-10 17:40:20

Session过期问题的相关文章

ajax session过期问题

如处理不当会影响用户体验,也有可能产生莫名的问题. 结合自己的思考和网上相关内容的参考,给出如下解决方案. 方案1:检查AJAX返回的返回的内容是否有<html>标签 在web系统中,当session过期时,当用户有操作的时候,此时系统一般会返回登陆界面. 让用户重新输入用户名和密码.当session过期的时候,AJAX请求返回的内容应该是登陆界面的页面 内容(即登陆界面的页面的html代码).通过判断返回内容是否用<html>来判断session是否过期. var result=

asp中设置session过期时间方法总结

 如果程序中没有设置session的过期时间,那么session过期时间就会按照IIS设置的过期时间来执行,IIS中session默认过期时间为20分钟,IIS中session时间可以更改   如果程序中设置了session过期时间,那么,即使你将IIS中session时间设置100小时也没有用,因为程序会首先按照程序中设置,只有程序没设置的情况下才会按照IIS设置的 时间设置要放在前面 例如  代码如下   Session.Timeout=30 'SEESION有效时间为30分钟  Sessi

解析PHP的session过期设置

网上很多人给出了解答:修改php配置文件中的session.gc_maxlifetime.如果想了解更多session回收机制,继续阅读.(本文环境php5.2) 概述:每 一次php请求,会有1/100的概率(默认值)触发"session回收".如果"session回收"发生,那就会检查/tmp/sess_*的文 件,如果最后的修改时间到现在超过了1440秒(gc_maxlifetime的值),就将其删除,意味着这些session过期失效. 1. session在

ASP.NET设置Session过期时间

  1.本文所说Session过期时间的四种设置方式均在Widnows2003系统下设置的,具体步骤:开始--〉管理工具--〉Internet信息服务(IIS)管理器--〉网站--〉默认网站- -〉右键"属性"--〉主目录--〉配置--〉选项--〉启用会话状态--〉会话超时(在这儿设置你要的超时时间,单位分钟).确定即可. 2.ASP.NET应用程序中Session过期时间的设置 在ASP.NET这样的Web应用中,Session是用来保存用户状态的常用手段,不过由于服务器内存空间是有

ajax session过期问题的几个解决方案_AJAX相关

如处理不当会影响用户体验,也有可能产生莫名的问题. 结合自己的思考和网上相关内容的参考,给出如下解决方案.每个方案都有不同的优缺点,欢迎 大家指正. 方案1:检查AJAX返回的返回的内容是否有<html>标签 在web系统中,当session过期时,当用户有操作的时候,此时系统一般会返回登陆界面. 让用户重新输入用户名和密码.当session过期的时候,AJAX请求返回的内容应该是登陆界面的页面 内容(即登陆界面的页面的html代码).通过判断返回内容是否用<html>来判断ses

几种判断asp.net中session过期方法的比较_实用技巧

方法一:最麻烦也是最容易想到的方法,在每个页面的page_load()方法里面判断: 复制代码 代码如下: protected void Page_Load(object sender, EventArgs e)        {            if (!IsPostBack)            {                if (Session["username"] != null)                {                     //登

tomcat集群-memcached-session-manager关于session过期的设置

问题描述 memcached-session-manager关于session过期的设置 实现的环境是apache+3tomcat+msm,session信息存入memcached.一般我们设置比如用户30分钟无任何操作就认为登录超时,但无论是官方文档还是博客上都没有看到如何在msm中设置session过期的参数.有的也只是怎么在客户端set的方法设置.难道这个项目根本就没实现,而只能使memcached server默认的30天?求教!

ajax session过期问题的几个解决方案

如处理不当会影响用户体验,也有可能产生莫名的问题. 结合自己的思考和网上相关内容的参考,给出如下解决方案.每个方案都有不同的优缺点,欢迎 大家指正. 方案1:检查AJAX返回的返回的内容是否有<html>标签 在web系统中,当session过期时,当用户有操作的时候,此时系统一般会返回登陆界面. 让用户重新输入用户名和密码.当session过期的时候,AJAX请求返回的内容应该是登陆界面的页面 内容(即登陆界面的页面的html代码).通过判断返回内容是否用<html>来判断ses

.net mvc3验证Session过期页面跳转问题

问题描述 本人接触MVC3.0不久,做了一点小练习,现在遇到一些小问题.这个是我写的BaseController方法publicclassBaseController:Controller{protectedoverridevoidOnActionExecuting(ActionExecutingContextfilterContext){//验证当前请求的Session有没有过期if(Web.Comm.Comm.CheckSessionTimeOut()){filterContext.Resu

jQuery ajax全局函数处理session过期后的ajax跳转问题_jquery

做web常常需要考虑session过期的问题,session过期就让页面跳转到登录界面去,但是存在这样一个问题,当页面过期后,用户请求后台的方式有两种:传统方式和异步请求方式,传统方式倒好解决,请求到后台,拦截到过期的操作,直接跳转,但是异步请求不会刷新整个页面,因此对session过期的处理也不能按往常的方式,需要另外的操作. 具体思路:拦截器中判断是否为ajax请求 -- 是ajax请求则返回一个消息 --页面添加一个全局的ajax处理事件,对消息进行判断,如果是报告session过期,则l