如何调查Session()过期的原因并让用户知道

时间:2009-05-28 11:35:48

标签: c# asp.net

如何调查导致会话到期的原因? 我想向在我们网站上遇到以下问题的最终用户提供一些建议:

If Session("xxxx") Is Nothing Then say something.. WHY??

我可以在web.config中添加一些内容以使会话持续更长时间,还是应该阅读IIS日志文件以了解为什么会发生这种情况?

3 个答案:

答案 0 :(得分:1)

第一个会话在web.config的{​​{3}}中配置。

您也可以选择会话结束事件(<sessionState> element)但注意(1)这仅适用于进程内会话管理,(2)您需要在发生请求时记录(在会话中) ,所以你可以确定它是暂停还是其他原因。

答案 1 :(得分:1)

我认为通常如果用户在一段时间内没有做任何事情(没有页面刷新等),那么会话将会过期,否则它只会消耗服务器上的大量资源。

在经典的asp中,你可以设置一个超时,不确定它是否仍然存在于asp.net中。

如果您不希望会话过期,而用户正在查看您的网站,您可以对您的网页进行元刷新,或者有点聪明并使用某种类型的ajax计时器触发并做部分刷新某事

答案 2 :(得分:1)

您可以在Global.asax文件的Session_End方法中添加一些代码,以帮助确定出现问题,假设您正在以InProc运行会话。

要在IIS6中增加会话长度,请执行以下操作:

  1. 打开IIS
  2. 右键单击您的网站并选择属性
  3. 选择主目录标签
  4. 单击“应用程序设置”部分中的“配置”按钮
  5. 选择选项标签
  6. 将会话超时值增加到您想要的任何值。
  7. 关闭所有内容并执行IISReset