历史访问量统计和在线用户统计

Global.asax文件:
<% @ Application Language = " C# "   %>
<% @ Import  Namespace = " System.IO "   %>
< script runat = " server " >

    
void  Application_Start( object  sender, EventArgs e) 
    {
        
// 在应用程序启动时运行的代码
        Application[ " CurrentGuests " =   0 ; // 初始花为0;

        
// Server.MapPath获取的是物理路径(绝对路径)
        
// 1. Server.MapPath("./") 当前目录 2.Server.MapPath("../")上一级目录  3.Server.MapPath("~/")网站根目录
        FileStream fileStream  =  File.Open(Server.MapPath( " counts.text " ), FileMode.OpenOrCreate); // 文件不存在,创建文件
        StreamReader reader  =   new  StreamReader(fileStream); // 要读取的完整路径
        Application[ " AllGuests " =  Convert.ToInt32(reader.ReadLine());  // 从当前流中读取一行字符并将数据作为字符串返回
        reader.Close(); // 关闭流


    }
    
    
void  Application_End( object  sender, EventArgs e) 
    {
        
// 在应用程序关闭时运行的代码

    }
        
    
void  Application_Error( object  sender, EventArgs e) 
    { 
        
// 在出现未处理的错误时运行的代码

    }

    
void  Session_Start( object  sender, EventArgs e)  // 当用户访问网站时,在线用户+1,总访问数+1
    {
        
// 在新会话启动时运行的代码
        Application.Lock(); // 同步,避免同时写入
        Application[ " CurrentGuests " =  ( int )Application[ " CurrentGuests " +   1 ; // 总在线用户数
        Application[ " AllGuests " =  ( int )Application[ " AllGuests " +   1 ; // 访问网站的总用户数
        
        FileStream fileStream 
=   new  FileStream(Server.MapPath( " counts.txt " ), FileMode.OpenOrCreate, FileAccess.ReadWrite); //
        StreamWriter writer  =   new  StreamWriter(fileStream); // 实现一个写入流,使其以一种特定的编码向流中写入字符
        writer.WriteLine(Application[ " AllGuests " ].ToString()); // 把访问网站的总用户数再次写入到文件
        writer.Close(); // 关闭写入流
        Application.UnLock(); // 同步结束


    }

    
void  Session_End( object  sender, EventArgs e) 
    {
        
// 在会话结束时运行的代码。 
        
//  注意: 只有在 Web.config 文件中的 sessionstate 模式设置为
        
//  InProc 时,才会引发 Session_End 事件。如果会话模式 
        
// 设置为 StateServer 或 SQLServer,则不会引发该事件。
        Application.Lock();
        Application[
" CurrentGuests " =  ( int )Application[ " CurrentGuests " -   1 ; // 总在线用户数量-1
        Application.UnLock(); 


    }
       
</ script >

你可能感兴趣的:(用户)