- require和require-dev的区别
- c#中Enumerable.Range 使用
- 网站优化过度被惩罚降权的表现
- 看看黑客在做什么
- utf8mb4和utf8mb3区别
- [SQL]取n到m条记录的语句
- 无法启用iis express web服务器
- php里isset是什么意思
- 【SVG】路径<Path>标签详解,一次搞懂所有命令参数
- saas管理软件
邮箱:
手机:15383239821
在C#中,在Web.Config文件中加入sessionState mode="InProc"语句
在Web.Config文件中加入<sessionState mode="InProc"></sessionState>语句,但 是在关闭IE页面时好像并未触发Session_End事件。我实验了一个用于记录来访人数 的小网页程序,使用了Application["visitor_counter"]变量。首先修改Web.config 文件,将上面的<session...>语句加入其<Configuration><system.web>下。然后在 Session_Start事件中使用如下语句: Application.Lock(); Application["visitor_counter"]=(int)Application["visitor_counter"]+1; Application.UnLock(); 在Session_End事件中使用如下语句: Application.Lock(); Application["visitor_counter"]=(int)Application["visitor_counter"]-1; Application.UnLock(); 最后在default.asp中加入了一个Label元素,将Application["visitor_counter"]信 息以字符串格式输出。 结果是每打开一次网页,Application["visitor_counter"]值就增1,但是关闭网页 并未是其减少1。请问这是怎么回事,如何解决。
回答:
除非程序通知服务器删除一个session,否则服务器会一直保留,程序一般都是在用户做log off的时候发个指令去删除session。然而浏览器从来不会主动在关闭之前通知服务器它将要关闭,因此服务器根本不会有机会知道浏览器已经关闭,之所以会有这种错觉,是大部分session机制都使用会话cookie来保存session id,而关闭浏览器后这个 session id就消失了,再次连接服务器时也就无法找到原来的session。如果服务器设置的cookie被保存到硬盘上,或者使用某种手段改写浏览器发出的HTTP请求头,把原来的session id发送给服务器,则再次打开浏览器仍然能够找到原来的session。 怎么解决呢? 由于关闭浏览器不会导致session被删除,所以服务器为seesion设置了一个失效时间,当距离客户端上一次使用session的时间超过这个失效时间时,服务器就可以认为客户端已经停止了活动,才会把session删除以节省存储空间。 大概是你关闭及统计需要一定的时间反应,刷新几下是不是减1了? 要是还没有,那你通知我,让我想想是怎么回事
- 上一篇:认识ASP.NET会话状态
- 下一篇: 不显示删除回复显示所有回复显示星级回复显示得分回复 asp.net中的状态管理sessionState Mode="StateServer" 和 Mode="InProc"的区别?
-
2022-05-08C# 实现保留两位小数的方法
-
2010-07-20中文分词 一篇关于中文分词算法的SEO必看文章
-
2025-11-13Regex.IsMatch 方法正则表达式在输入字符串中是否找到匹配项C#
-
2013-06-05C#获取当前页面的url
-
2010-08-09从零开始学习jQuery (十) jQueryUI常用功能实战
-
2026-04-10Web 前端中display: none 和 visibily: hidden 区别?
