`
cheeruplc
  • 浏览: 112390 次
  • 性别: Icon_minigender_2
  • 来自: 深圳
社区版块
存档分类
最新评论

关于Session_End事件的调用

阅读更多
本文转自:http://hi.baidu.com/zfy0921/blog/item/b977b93fa5ee063771cf6c30.html
关于 Session_End 事件
2009-11-26 14:57
出自程序人生的一篇文章,首先是关于Session_end的问题,问题如下:

1.关闭浏览器是否执行Session_End事件
2.当IIS重起时是否执行Session_end事件
3.当服务器重起时,是否执行Session_end事件
4.当主机突然断电时,是否执行Session_End事件
下面我们来分析一下Session_End事件:

首先Session_end事件时全局的应用程序级的事件,在global 文件中的声明如下:

void Session_End(object sender, EventArgs e)

{  ////执行代码 }

首先当我们直接把浏览器关闭之后,这个事件是不可能执行的,本身Session_End就是服务器级别的事件,

那么关闭浏览器是肯定不会执行Session_end事件的,这根本就是两个不相关的东西,所以不应该将他们牵扯在一起。在这个地方我想说一点,在很多时候我们将服务器端和客户端进行分离开来分析的话,可能会让问题已目了然!我接触过几个朋友,让我很吃惊的是,他们做了几年的编程,但是有时候还将服务器端事件和客户端事件进行混淆,这点也是让我很无奈的地方!

第二:当IIS重起时是否执行Session_end事件,对于这个问题我想从IIS服务上来说起,虽然global文件里的是全局方法,但是它也是依赖于应用程序的,而IIS也有其处理应用程序的一套解决方案,相对于global里的事件来说,IIS服务也是global的一个服务器端。IIS重起无非就是将IIS的一些列服务先进行关闭,然后再重新启动,那么来说服务器端重新启动,就会释放掉它所持有的所有资源,当然包括应用程序所占用的一切资源!也就是说IIS直接操作的是应用程序所占用的资源,而不是去执行应用程序里的方法,所有当IIS重起时是不会执行Session_end事件的!

第三:当服务器重起时,是否执行Session_end事件,对于这个问题,我们只能从服务器重起是怎么回事说起,大家都知道,当我们关闭服务器之时,首先肯定是要先终止正在运行的所有服务,当然了IIS服务也肯定在其中,那么服务器重起跟IIS重起,对于Session_End来说应该是一回事!

第四:当主机突然断电时,是否执行Session_End事件,如果您认真分析了前两个的分析,第四个我想您自己已经可以分析了!点都断了,服务器都不运行了,它还能执行什么事件??这问的也有点太过分了吧
分享到:
评论

相关推荐

    在ASP.NET中使用Session常见问题集锦

    在坛子里经常看到一些关于Session的问题,下面做一个总结,希望对大家有所帮助: 问:为什么Session在有些机器上偶尔会丢失?答:可能和机器的环境有关系,比如:防火墙或者杀毒软件等,尝试关闭防火墙。 问:为什么...

    IIS请求管道.pdf

    Global.asax.cs特殊事件: Application_Start 网站启动时候触发,只执行一次 Application_End 网站关闭时候触发,只执行一次 Session_Start 创建session时候触发 Session_End 销毁session时候触发 Application_Error...

    DBMS_LOGMNR中的常量选项

    隐式调用DBMS_LOGMNR.END_LOGMNR存储过程结束当前的logminer session然后创建一个新的session。新session从指定的redo日志文件开始,分析要重做的新的日志文件列表 ADDFILE 将指定的redo log文件添加到要分析的...

    asp生成图片验证码类

    If IsEmpty(Session("GetCode")) Or Session("GetCode") <> UCase(Request.form("Form_Code")) Then Response.Write "<script>alert('验证码输入错误!');history.go(-1)</script>" Response.End Else Session(...

    潍坊学院成人教育Java-Web程序设计B卷试卷及参考答案.doc

    %> ${a}" var="i" begin="3" end="5" step="2"> ${i }  </c:forEach> A. 1 2 3 4 5 6 7 8 B. 3 5 C. 4 6 D. 4 5 6 10. 下面哪个不能结束session会话________。 A. 调用HttpSession的clear()方法 B. 调用...

    iscsi协议及实现

    调用hand_to_front_end返回处理结果 处理结果加入FETD的发送队列xmit_queue等待发送 在结果发送完成后调用scsi_target_dones释放资源 iSCSI 的应用 采用iSCSI的设备的特点 采用了iSCSI协议的硬件设备是NAS和SAN的...

    libusb-1.0.9

    同步传输,用来传输投递关键事件的数据(比如视频和对话);批量传输,使用全部可以用的带宽但不是特定时间的。所有的数传使用相同格式的包装,包括控制信息,数据和错误效验区域。 这里有两种管道:消息管道和流...

    十天学会ASP.net--我认为ASP.NET比ASP难很多,希望大家做好准备

    外面有很多书,关于ASP和ASP.NET的,我就是看外面的书学会的。我所要做的就是希望大家能看了我的教程以后觉得ASP和ASP.NET不是学不会的东西然后有信心去学会它。我想学习还是靠自己的,外面每一本书也有自己写的不...

    PHP调用存储过程返回值不一致问题的解决方法分析

    本文实例讲述了PHP调用存储过程返回值不一致问题的解决方法。分享给大家供大家参考,具体如下: 今天遇一个同学聊存储过程返回值经常得到意外的值为null, 因为...END// delimiter; session 1执行: mysql>callusp_

    Window 消息大全

    WM_ENDSESSION = $0016 // 当系统进程发出WM_QUERYENDSESSION消息后,此消息发送给应用程序,通知它对话是否结束 WM_SYSTEMERROR = $0017 // WM_SHOWWINDOW= $0018 //当隐藏或显示窗口是发送此消息给这个窗口 WM_...

    appium运行各种坑爹报错问题及解决方法【推荐】

    1. error: Failed to start an Appium session, err was: Error: Requested a new session but one was in progress   之前的会话没有关闭,然后你又运行了测试实例,也没有设置覆盖. 解决: 1. 重新停止appium...

    net学习笔记及其他代码应用

    //请在以下补齐代码用来调用OnDBOperate委托签名的OnNew事件。 } } } 答:if( OnNew != null ) OnNew( this, e ); 27.分析以下代码,完成填空 string strTmp = \"abcdefg某某某\"; int i= System.Text....

    session-timeout:在会话即将到期时警告用户。 无依赖

    调用此函数时(通常每次加载页面时),计时器都会在后台启动。 当计时器关闭时,将向用户显示警告,告知他们的会话即将到期。 用户有两个选择:立即注销或保持连接。 如果他们选择注销,则会被带到您网站的注销页面...

    一个适合新手学习的电商项目

    tb_order订单表(payment,payment_type,post_fee,status,create_time,update_time,payment_time,consign_time,end_time,close_time,shipping_name,shipping_code,user_id,buyer_message,buyer_nick,buyer_rate) ...

    asp连接数据库代码实例

    1,连接数据库代码 文件名称 conn.asp 所有访问数据库的文件都调用此文件<!--#include file=\"Conn.asp\"--> db=\"data/data.mdb\" \'数据库存放目录 on error resume next set conn=server.createobject(\...

    最全的oracle常用命令大全.txt

    e、调用外部系统编辑器 SQL>edit 文件名 可以使用DEFINE命令设置系统变量EDITOR来改变文本编辑器的类型,在login.sql文件中定义如下一行 DEFINE_EDITOR=vi f、运行命令文件 SQL>START test SQL>@test 常用SQL*Plus...

    statspack解释范例

     软解析每秒超过300次意味着你的"应用程序"效率不高,没有使用soft soft parse,调整session_cursor_cache  Hard parses:每秒产生的硬解析次数  Sorts:每秒产生的排序次数  Executes:每秒执行次数  ...

    mysql数据库的基本操作语法

    Ø 常用查询 MySQL结束符是“;”结束。 1、 显示所有数据库 show databases; 2、 删除数据库 drop database dbName; 3、 创建数据库 create database [if not exists] dbName;...中括号部分可选的,判断该数据不存在就...

    Oracle带输入输出参数存储过程(包括sql分页功能)

    begin /*这里不能直接执行select语句但可以直接执行update、delete、insert语句*/ end里面不能接执行select语句,声明会话级临时表必须有“execute immediate 'TRUNCATE TABLE 表名';”这一句不然其他的session无法...

    精髓Oralcle讲课笔记

    -- 首先,以超级管理员的身份登录oracle sqlplus sys/bjsxt as sysdba --然后,解除对scott用户的锁 alter user scott account unlock; ... --(默认全局数据库名orcl) 1、select ename, sal * 12 from ...

Global site tag (gtag.js) - Google Analytics