2009-06-04 201 views
3

我的一些传统节目之前ASP会话过期使用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 
%> 
+1

你提供的代码在哪里?如果它是客户端的javascript/vbscript,你不应该能够获得会话变量,并且如果它是服务器端,你不应该能够做出警报... – Damovisa 2009-06-04 10:35:35

+0

@Damovisa,我发布了我的代码。任何想法有什么不对? – George2 2009-06-04 10:36:35

+1

Gotcha - 我刷新了,你已经更新了代码:) – Damovisa 2009-06-04 10:37:03

回答

1

根据您的更新一对夫妇的想法:

  1. 难道还有其他原因,你session("timeToken")可能是空

    会话过期箱由我的代码引发的?另一块代码在某处或可能是变量在某处被拼写错了?

  2. 如何在你的代码session("timeToken")变化的实际价值?会话开始时是否设置?是否定期更新?它存储什么价值?

你写的代码,似乎要被罚款,所以如果它不是一个代码问题它很可能会成为一个真正的会话问题......只是有些事情首先要检查。

更新:

  • ASP会话状态使用Cookie一般维持 - 你能检查客户端启用了饼干?
  • 是ASP应用程序通过多台服务器提供服务?如果它被从Web场或群集服务,你需要确保会话状态可以在机器或用户的会话是“粘”坚持 - 也就是说,它总是由同一个服务器提供服务。

更多信息和帮助可以在这里找到:http://msdn.microsoft.com/en-us/library/ms972338.aspx

+0

你是什么意思“2.会话(”timeToken“)的实际值如何改变?” - 在什么情况下会自动改变我的代码? – George2 2009-06-04 10:47:16

+0

如果您能让我知道任何会影响会话过期的来自IIS或OS或浏览器端的设置,请致以欣赏! – George2 2009-06-04 10:49:59

1

这可能是您的应用程序SEESION超时IIS限制。

试试这个:

  1. 右键单击您的应用程序文件夹中的IIS
  2. 然后去属性 - >虚拟目录选项卡 - >然后在右下角
  3. 配置按钮如果是禁用,然后创建应用程序首先单击按钮创建
  4. 在配置窗口下单击选项选项卡,您会发现SESSION TIMEOUT默认设置为20(分钟)

希望这是对你的祈祷aswer :)

1

检查您的应用程序运行在您的应用程序池不回收由于某种原因。例如,它是否具有更积极的空闲超时(在测试场景中,您可能是唯一使用该应用程序的用户,因此您不使用它不仅构成空闲会话而且是空闲应用程序)。

应用程序池可以配置的各种不同的原因将触发回收。

检查事件日志,当你有一个未接受的超时时间,在那里看起来不寻常吗?