黑马程序员技术交流社区

标题: Global.asax文件中的常用事件,该怎么调用? [打印本页]

作者: 杨占伟    时间: 2012-12-1 23:28
标题: Global.asax文件中的常用事件,该怎么调用?
本帖最后由 杨占伟 于 2012-12-3 10:13 编辑

Global.asax文件中的常用事件该怎么用? 这个文件中的方法通过什么来调用?
<%@ Application Language="C#" %>
<script runat="server">
    void Application_Start(object sender, EventArgs e)
    {
        // 在应用程序启动时运行的代码
    }
   
    void Application_End(object sender, EventArgs e)
    {
        //  在应用程序关闭时运行的代码
    }
        
    void Application_Error(object sender, EventArgs e)
    {
        // 在出现未处理的错误时运行的代码
    }
    void Session_Start(object sender, EventArgs e)
    {
        // 在新会话启动时运行的代码
    }
    void Session_End(object sender, EventArgs e)
    {
        // 在会话结束时运行的代码。
        // 注意: 只有在 Web.config 文件中的 sessionstate 模式设置为 InProc 时,才会引发 Session_End 事件。
        // 如果会话模式设置为 StateServer
        // 或 SQLServer,则不会引发该事件。
    }
      
</script>

作者: 罗代势    时间: 2012-12-2 11:50
global.asax 位于应用程序根目录下。虽然 visual studio .net 会自动插入这个文件到所有的 asp.net 项目中,但是它实际上是一个可选文件。删除它不会出问题——当然是在你没有使用它的情况下。.asax 文件扩展名指出它是一个应用程序文件,而不是一个使用 aspx 的 asp.net 文件。

global.asax 文件被配置为任何(通过 url 的)直接 http 请求都被自动拒绝,所以用户不能下载或查看其内容。asp.net 页面框架能够自动识别出对global.asax 文件所做的任何更改。在 global.asax 被更改后asp.net 页面框架会重新启动应用程序,包括关闭所有的浏览器会话,去除所有状态信息,并重新启动应用程序域。

不是每个请求都触发的事件。

  1.Application_Start():当第 1 位用户进入 ASP.NET 程序时,Application_Start 事件就触发,在触发后,就算有成千上万位用户进入网站都不会重新触发,除非 Web 服务器关机。通常用来初始化 Application 变量,例如初始的访客计数


  2.Session_Start():当用户建立 Session 时间时,就触发 Session_Star 事件,如果有 50 位用户,就触发 50 次事件,每个事件是独立触发的,不会互相影响,通常用来初始化用户专用的 Session 变量

  3.Application_Error():当产生未能处理错误时,触发 Application_Error 事件

  4.Session_End():当用户在默认时间内没有进入其他ASP.NET 程序时,就会触发此事件,时间是由 TimeOut 属性设定,通常是善后用途的程序代码,例如将 Session 变量存入数据库或文本文件

  5.Application_End():当 Web 服务器关机时,Application_End 事件就会触发



作者: 杨占伟    时间: 2012-12-3 10:12
非常感谢~~




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2