Session_OnEnd() 有几个可能
1、没有建立站点或虚拟目录
2、Session.TimeOut = ?
3、IIS重起,和Gloab.asa 或Gloab.asax 的修改。bin\*.dll 修改

解决方案 »

  1.   

    并不是说session_onend不被触发,而是在两中条件下,1个能触发,1个不能。在web.config里面,如果session用inpro模式,则Session_OnEnd()能正常触发,只要把改成SessionState模式的时候。Session_OnEnd()就不被触发(但onstatr还是正常)大家可以测试一下,我测试了很多次。
      

  2.   

    <!--  会话状态设置
              默认情况下,ASP.NET 使用 Cookie 来标识哪些请求属于特定的会话。
              如果 Cookie 不可用,则可以通过将会话标识符添加到 URL 来跟踪会话。
             若要禁用 Cookie,请设置 sessionState cookieless="true"。
        -->
        <sessionState 
                mode="InProc"
                stateConnectionString="tcpip=127.0.0.1:42424"
                sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes"
                cookieless="false" 
                timeout="20" 
        />
      

  3.   

    MSDN:
    ms-help://MS.MSDNQTR.2003FEB.2052/cpgenref/html/gngrfsessionstatesection.htmmode     指定在哪里存储会话状态。 
        Off 指示会话状态未启用。 
        InProc 指示在本地存储会话状态。 
        StateServer 指示在远程计算机上存储会话状态。 
        SQLServer 指示在 SQL Server 上存储会话状态。 
    只要把改成SessionState模式的时候 ???
      

  4.   

    说错了,是StateServer<sessionState 
                mode="StateServer"
                stateConnectionString="tcpip=127.0.0.1:42424"
                sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes"
                cookieless="false" 
                timeout="20" 
        />这种情况下,你试过Session_OnEnd()被触发的吗???
      

  5.   

    StateServer是不会解发Session_OnEnd()事件的