开发asp.net网站一段时间了,最近在研究Global.asax文件,对里面的事件在什么时候触发进行了了解,但是一直搞不明白,什么是一个会话的开始,一个会话的结束。还有应用程序的开始和结束。求高手帮忙,希望能讲的好理解点。谢谢了。asp.net会话,应用程序

解决方案 »

  1.   

    asp.net 运行原理
      

  2.   

    Application的开始是只要有第一个人打开网站就触发;Application结束是最后一个人退出时触发。
    Session的开始是当每一个用户打开网页时都触发;Session结束是当每一个用户退出时触发。
      

  3.   

    就是一个人打开了这个网站的随意一个网页就出发了 Session_Start事件,然后关闭这个网站的全部网页就出发Session_End事件吗?
      

  4.   

     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,则不会引发该事件。
        }Session 是会话级的状态保持对象,比如说用户发开浏览器,访问某一个web站点,服务器做出响应之后,然后关闭浏览器,整个过程称之为一个会话。上面的 Session_Start(会话开始) 和 Session_End(会话结束) 事件就是这两个时候触发的。
      

  5.   

    Session_End(会话结束)是关闭浏览器触发 还是关闭打开网站最后的网页结束,因为现在浏览器可以有多个标签的。
      

  6.   

    看浏览器规则是什么时候回发这个事件,也有可能不回发,session到期时也会触发这个事件
      

  7.   

    用户(客户端、浏览器)访问服务器,如果应用进程没有启动,就开启一个新进程,这时候Application开始,知道应用关闭(服务器关闭或重启)Application才关闭。
    用户(客户端、浏览器)访问服务器,如果之前没有Session,就会创建一个Session;如果在一定时间内(Session超时)同一个用户没有后续访问,Session自己会关闭;如果在超时时间内同一个用户再次访问,会使用前面同一个Session,超时也重新开始计算;如果超过时间,会新建一个Session,和第一次访问一样。和浏览器没有关系,维护Session的是客户端Cookie和服务器Session State共同作用的,客户端的Cookie标识同一个用户,服务器端的Session保存数据。相关概念建议好好看看MSDN。