Asp.net 中 Session_End 事件为何不执行啊!!!请高手指点

ylh1223 2004-05-14 10:12:11
我把iis中的session 超时时间设置为 2分钟:但过了很久都没反应呀。
Global.asax文件中:
protected void Session_End(Object sender, EventArgs e)
{

}
为何不执行呀!
...全文
185 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
ylh1223 2004-05-14
  • 打赏
  • 举报
回复
我用了Session.Abandon啊,但是session_end有时候会执行,有时候又不会,不知道是不是iis的问题。
hychieftain 2004-05-14
  • 打赏
  • 举报
回复
Session timeout 不定很经常!所以一般用Session.Abandon
ylh1223 2004-05-14
  • 打赏
  • 举报
回复
to hychieftain(不同): 可是我把 session timeout 设置为2分钟, 然后我等了几个小时也不会执行呀!
hychieftain 2004-05-14
  • 打赏
  • 举报
回复
session_end会有延迟,默认为20分钟,因为服务器端并不知道客户端是否已经关闭了浏览器,只能根据超过延迟时间未有浏览动作来判断他的SESSION已经END。
hychieftain 2004-05-14
  • 打赏
  • 举报
回复
超时应该会触发,但在ASP.NET里时常不触发,不知是不是MS的bug

示例代码
try (not always work, since the user can go to another site):

<script language=javascript>
function window.onunload()
{
if (event.clientX < 0 && event.clientY < 0)
window.open("logout.aspx", "logout");
}
</script>

in logout.aspx:
<% Session.Abandon() %>
ylh1223 2004-05-14
  • 打赏
  • 举报
回复
服务器session 超时不触发这个事件吗?
hychieftain 2004-05-14
  • 打赏
  • 举报
回复
在相关的ASPX页面,增加
<% Session.Abandon() %>
hychieftain 2004-05-14
  • 打赏
  • 举报
回复
使用Session.Abandon方法

hychieftain 2004-05-14
  • 打赏
  • 举报
回复
First of all, Session_End event is supported only in InProc mode. In order for Session_End to be fired, your session state has to exist first. That means you have to store some data in the session state and has completed at least one request.

62,248

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧