我的一些遗留程序正在使用ASP
(不是ASP.Net),即使我设置了很长的会话过期时间,例如20分钟,有时在短时间内(例如在几分钟内)我会仍然会注意到会话过期错误框 -
“空闲时间过长,请重新登录。”
还有什么想法可以进一步分析?不确定这是我的代码错误还是服务器(浏览器)配置问题,因为并非所有客户端/服务器组合都遇到这个奇怪的问题。
会话过期框由我的代码触发:
<%
if session("timeToken") = "" then
%>
<script language = "JavaScript">
<!--
window.alert ("too much idle time, please login again");
//-->
</script>
<%
response.End()
end if
%>
答案 0 :(得分:1)
基于您的更新的一些想法:
您的session("timeToken")
可能是空的还有其他原因吗?某个地方的另一段代码或者变量在某处拼错了?
session("timeToken")
的实际值如何在代码中发生变化?是否在会话开始时设置?是否定期更新?它存储了什么价值?
您编写的代码似乎没问题,所以如果它不是代码问题,那么它可能会成为真正的会话问题......首先要检查一些事情。
<强>更新强>
可在此处找到更多信息和帮助:http://msdn.microsoft.com/en-us/library/ms972338.aspx
答案 1 :(得分:1)
确保您的网站停留在相同的区分大小写的文件夹
e.g。
http://myserver.com/MyWebSite/
与
没有相同的会话Cookiehttp://myserver.com/mywebsite/
所以它会让你退出。
答案 2 :(得分:1)
可能是您的应用程序延迟超时的IIS限制。
试试这个:
希望这是你祷告的呐喊:)
答案 3 :(得分:1)
检查您的应用运行的应用程序池是否由于某种原因而无法回收。例如,它有一个更积极的空闲超时(在测试场景中,您可能是唯一一个使用该应用程序,因此您不使用它不仅构成空闲会话而且构成空闲应用程序。)
可以为其配置应用程序池的各种不同原因将触发回收。
当你有一个未被发现的超时时检查事件日志,那里看起来有什么异常吗?