web.config文件中配置会话模式为服务器模式,如何进入session_End事件?

ziying2004 2005-05-13 09:03:49
在应用程序的web.config文件中,将<sessionstate>元素mode属性设置为stateserver,它是不是就没有办法进入Global文件的Session_End事件了?
...全文
277 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
ziying2004 2005-05-13
  • 打赏
  • 举报
回复
可是我现在的条件是将服务器Session信息存储在服务器上
那么应该怎么办呢?
孟子E章 2005-05-13
  • 打赏
  • 举报
回复
你可以用sql语句检查数据库记录
参见
http://www.cnblogs.com/anders/archive/2005/03/30/32744.html

将服务器Session信息存储在SQL Server中

  首先,还是让我们来做一些准备工作。启动SQL Server和SQL Server代理服务。在SQL Server中执行一个叫做InstallSqlState.sql的脚本文件。这个脚本文件将在SQL Server中创建一个用来专门存储Session信息的数据库,及一个维护Session信息数据库的SQL Server代理作业。我们可以在以下路径中找到那个文件:


程序代码:
[system drive]\winnt\Microsoft.NET\Framework\[version]\


  然后打开查询分析器,连接到SQL Server服务器,打开刚才的那个文件并且执行。稍等片刻,数据库及作业就建立好了。这时,你可以打开企业管理器,看到新增了一个叫ASPState的数据库。但是这个数据库中只是些存储过程,没有用户表。实际上Session信息是存储在了tempdb数据库的ASPStateTempSessions表中的,另外一个ASPStateTempApplications表存储了ASP中Application对象信息。这两个表也是刚才的那个脚本建立的。另外查看管理->SQL Server代理->作业,发现也多了一个叫做ASPState_Job_DeleteExpiredSessions的作业,这个作业实际上就是每分钟去ASPStateTempSessions表中删除过期的Session信息的。

  接着,我们返回到Web.config文件,修改mode的值改为SQLServer。注意,还要同时修改sqlConnectionString的值,格式为:


程序代码:
sqlConnectionString="data source=localhost; Integrated Security=SSPI;"


  其中data source是指SQL Server服务器的IP地址,如果SQL Server与IIS是一台机子,写127.0.0.1就行了。Integrated Security=SSPI的意思是使用Windows集成身份验证,这样,访问数据库将以ASP.NET的身份进行,通过如此配置,能够获得比使用userid=sa;password=口令的SQL Server验证方式更好的安全性。当然,如果SQL Server运行于另一台计算机上,你可能会需要通过Active Directory域的方式来维护两边验证的一致性。

  同样,让我们做个试验。向SessionState.aspx中添加Session信息,这时发现Session信息已经存在SQL Server中了,即使你重起计算机,刚才的Session信息也不会丢失。现在,你已经完全看见了Session信息到底是什么样子的了,而且又是存储在SQL Server中的,能干什么就看你的发挥了

ziying2004 2005-05-13
  • 打赏
  • 举报
回复
那么我有办法捕捉session过期的事件吗?
或者说我怎么知道session已经过期了?
cmoremore 2005-05-13
  • 打赏
  • 举报
回复
Also Session_End event is supported only in InProc mode.

问下楼上的,这是哪个网战阿?资料不错的样子
hackate 2005-05-13
  • 打赏
  • 举报
回复
对,Session_End 只在InProc下才会触发,你想么,Session Expire是在另一个进程或机器上发生的,怎么触发在你进程里的Session_End函数?


参考
ASP.NET Session State FAQ
http://www.eggheadcafe.com/articles/20021016.asp

62,242

社区成员

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

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

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

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