我们正在开发一个引入新asp.net页面的asp经典应用程序。 会话变量通过login.asp共享,一切正常...... 我们现在面临的问题是asp经典会话到期同时用户正在浏览.net页面并尝试再次进入asp页面... asp中的会话已经过期,因为用户已经浏览了超过20分钟的aspx页面。
提前致谢 Ariel Gimenez
答案 0 :(得分:3)
当用户通过以下方式浏览ASPX页面时,您可以保持您的Classic ASP会话处于活动状态:
在加载ASP页面的ASPX页面中添加隐藏的iframe
'aspx页面....
< iframe src ='keep_session.asp'style ='display:none'>< / iframe>
或者每隔10分钟从ASPX页面使用AJAX帖子到ASP页面以保持ASP会话活动
答案 1 :(得分:2)
我觉得你会觉得很有意思:
http://msdn.microsoft.com/en-us/library/aa479313.aspx
更新
我认为这是关键:
“本机ASP会话只能将会话数据存储在内存中。为了将会话数据存储到SQL Server,编写自定义Microsoft®VisualBasic®6.0COM对象来管理会话状态而不是使用本机会话这个COM对象将在每个Web请求的开头实例化,并从SQL Server重新加载会话数据。当ASP脚本完成后,该对象将被终止,会话状态将被持久化回SQL Server。“< / p>
你也从db检索asp会话吗?
答案 2 :(得分:1)
我可以想出两种解决方法:
将会话超时设置增加到20分钟以上。
在.aspx
导航的常用页面之间添加重定向页面
这将重定向到asp页面,然后转到正确的目标,确保会话对象没有超时。