Asp.net的Session过期(转载)
来源:互联网 发布:c语言希尔排序算法 编辑:程序博客网 时间:2024/06/06 21:24
如果你发现session突然无理由的丢失,而当你认真的检查代码并且排除其它常规可能丢失的可能性时,你可能会像我一样,几乎要接近崩溃~
后来发现问题出在我用代码创建一个临时目录然后删除临时目录的删除操作上。
现在和大家分享下:希望对碰到类似钉子的朋友有用……
说白了session丢失实质就是:应用程序重起!
应用程序什么时候自动重起呢?
请参考:Anand在dotnetindia.com发表的文章
也就是说 asp.net 会监视应用程序目录,一但有被监视的动作发生(比如:修改了config、重命名目录等)应用程序就会自动重起当然这时你的session一定丢失了。
如果避免不了这种操作(如:重命名目录);这里我们可以用cookie存信息或存到数据库去;
注意:除了以上列出的英文条件外。目录的删除操作一定丢失session.asp.net的内部机制对待目录有点像个守财奴,它死守着目录,你创建它不会管(往里加),一但创建他就会监视该目录,若你要删除或重命名它的(动它的目录),它就发生重起了……
2.Frame中关于Session丢失
在开发中,我们经常会遇到使用Frame来工作,而且有时是为了跟其他网站集成,应用到多域的情况下,而Iframe是不能保存Session的。因此, 网上可以找到很多相关的文章,如果网站可以采用设置Web.Config中的配置:<sessionState mode="StateServer" stateConnectionString="tcpip=127.0.0.1:42424" sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes" cookieless="false" timeout="40" />把cookieless="false"改成"true"就可以了。但也同样有个小问题,就是如果页面中采用Javascript的window.location.href=''这样的方式来重定向的话,系统会认为这是另一个新的请求,产生一个新的SessionId,导致原Session同样的丢失。所以对于重定向,还是使用Response.Redirect()为好。
除了Ifrmae有丢Session问题外,frameset也有同样的问题。Frameset的问题更不移定,是有时会丢,有时不会丢,这更认人头痛, 在网上找到了一个方法,在页面page_onload里添加一语句:Response.AddHeader("P3P","CP=CAO PSA OUR");FrameSet中的Session丢失问题就解决了。
- Asp.net的Session过期(转载)
- Asp.net的Session过期
- Asp.net的Session过期问题
- asp.net判断session过期
- ASP.NET Session丢失问题解决方案总结及判断Session是否过期【转载】
- 判断asp.net中session过期的方法
- ASP.NET处理Session过期的几种方案
- Asp.net MVC Session过期异常的处理
- ASP.net中让Session永不过期
- ASP.NET设置Session过期时间
- asp.net中Session过期设置方法
- asp.net中Session过期设置方法
- ASP.NET设置Session过期时间
- asp.net webconfig session 过期时间设置
- ASP.NET设置Session过期时间
- asp.net中Session过期设置方法
- asp.net中Session过期设置方法
- ASP.NET Session过期问题揭秘
- 组合快捷键的实现方法(转载)
- Java 面试试题(二)
- C#-用Stopwatch类进行速度测试
- 插件技术原理及其C#实现(转载)
- 提升C#和Visual Studio生产率的10个提示(转载)
- Asp.net的Session过期(转载)
- C#实现所有经典排序算法(转载)
- CAS 的SSO实现细节
- C#索引器(转载)
- WEB开发基础教程 w3course.net
- ASP.NET 2.0 中跨网页提交的三种方法(转载)
- 电脑开机蓝屏解决........
- 一段JS
- .net中用css控制GridView样式