CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  ASP.NET

站点访问历史人数统计的问题

楼主oracleunix()2005-08-04 19:05:09 在 .NET技术 / ASP.NET 提问

GLOBAL.ASAX中代码如下,现在的问题是,不重启www服务累加没什么问题,但当我停止www服务后,再重新启动www服务,再打开统计页面,结果页面还是显示为1,感觉 Application_End事件中的代码没有执行,请大家帮忙修改一下.  
  protected   void   Application_Start(Object   sender,   EventArgs   e)  
  {  
  StreamReader   objstreamreader;  
  StreamWriter   objstreamwriter;  
   
  if(File.Exists(System.Web.HttpContext.Current.Server.MapPath("count.txt")))  
  {  
  objstreamreader=File.OpenText(System.Web.HttpContext.Current.Server.MapPath("count.txt"));  
  Application["totali"]=objstreamreader.ReadLine();  
  objstreamreader.Close();  
  }  
  else  
  {  
  Application["totali"]=0;  
  objstreamwriter=File.CreateText(System.Web.HttpContext.Current.Server.MapPath("count.txt"));  
  objstreamwriter.WriteLine(Application["totali"].ToString());  
  objstreamwriter.Close();  
  }  
   
   
  }  
     
  protected   void   Session_Start(Object   sender,   EventArgs   e)  
  {  
   
  Application.Lock();  
  Application["totali"]=Convert.ToInt32(Application["totali"])   +   1;  
  Application.UnLock();  
   
  }  
  protected   void   Application_End(Object   sender,   EventArgs   e)  
  {  
  //FileStream   countwrite=new   FileStream(System.Web.HttpContext.Current.Server.MapPath("count.txt"),FileMode.Open);  
  using(StreamWriter   objstream=new   StreamWriter(System.Web.HttpContext.Current.Server.MapPath("count.txt").ToString()))  
  {  
  objstream.WriteLine(Application["totali"]);  
  objstream.Close();  
  }  
  } 问题点数:50、回复次数:8Top

1 楼copine()回复于 2005-08-04 20:22:30 得分 0

你先看看那个文件建立没有吧,如果你的站点是在interpub里面的话有可能是因为运行asp.net环境的用户没权限写该文件夹造成的。Top

2 楼copine()回复于 2005-08-04 20:23:40 得分 0

还有记得结贴,你的信誉分都76   了。Top

3 楼oracleunix()回复于 2005-08-04 20:33:05 得分 0

该文件的确建立了,另外这个程序在d盘里,做为虚拟目录了,并且该盘为fat32格式Top

4 楼zhilunchen(他山居士)回复于 2005-08-04 20:50:37 得分 0

用数据库吧!Top

5 楼oracleunix()回复于 2005-08-05 06:33:34 得分 0

有人能帮忙解决一下吗?急Top

6 楼zeusvenus()回复于 2005-08-05 07:44:53 得分 0

试试  
  通过在Global.asax文件中配置Application来统计的方法......  
   
  using   System;  
  using   System.Collections;  
  using   System.ComponentModel;  
  using   System.Web;  
  using   System.Web.SessionState;  
  using   System.IO   ;  
   
  namespace   movie    
  {  
    ///   <summary>  
    ///   Global   的摘要说明。  
    ///   </summary>  
    public   class   Global   :   System.Web.HttpApplication  
    {  
      ///   <summary>  
      ///   必需的设计器变量。  
      ///   </summary>  
      private   System.ComponentModel.IContainer   components   =   null;  
   
      public   Global()  
      {  
        InitializeComponent();  
      }    
       
      protected   void   Application_Start(Object   sender,   EventArgs   e)  
      {  
                          Application["conn"]="Server=localhost;database=movie;uid=sa;pwd='zcc';";  
        Application["user_sessions"]   =   0;    
        Application["counter_num"]=0;  
   
   
        uint   count=0;    
        StreamReader   srd;    
        //取得文件的实际路径    
        string   file_path=Server.MapPath   ("counter.txt");    
        //打开文件进行读取    
        srd=File.OpenText   (file_path);    
        while(srd.Peek   ()!=-1)    
        {    
          string   str=srd.ReadLine   ();    
          count=UInt32.Parse   (str);    
        }    
        object   obj=count;    
        Application["counter"]=obj;    
        srd.Close   ();    
   
      }  
     
      protected   void   Session_Start(Object   sender,   EventArgs   e)  
      {  
        Application.Lock();    
        Application["user_sessions"]   =   (int)Application["user_sessions"]   +   1;    
        Application.UnLock();    
   
        Application.Lock   ();    
        //数值累加,注意这里使用了装箱(boxing)    
        uint   jishu=0;    
        jishu=(uint)Application["counter"];    
        jishu=jishu+1;    
        object   obj=jishu;    
        Application["counter"]=obj;    
        //将数据记录写入文件    
        string   file_path=Server.MapPath   ("counter.txt");    
        StreamWriter   fs=new   StreamWriter(file_path,false);    
        fs.WriteLine   (jishu);    
        fs.Close   ();    
        Application.UnLock   ();    
   
   
      }  
   
      protected   void   Application_BeginRequest(Object   sender,   EventArgs   e)  
      {  
   
  //       Application.Lock();  
  //       Application["counter_num"]=(int)Application["counter_num"]+1;  
  //       Application.UnLock();  
   
      }  
   
      protected   void   Application_EndRequest(Object   sender,   EventArgs   e)  
      {  
   
      }  
   
      protected   void   Application_AuthenticateRequest(Object   sender,   EventArgs   e)  
      {  
   
      }  
   
      protected   void   Application_Error(Object   sender,   EventArgs   e)  
      {  
   
      }  
   
      protected   void   Session_End(Object   sender,   EventArgs   e)  
      {  
        Application.Lock();    
        Application["user_sessions"]   =   (int)Application["user_sessions"]   -   1;    
        Application.UnLock();    
   
      }  
   
      protected   void   Application_End(Object   sender,   EventArgs   e)  
      {  
   
        uint   js=0;    
        js=(uint)Application["counter"];    
        //object   obj=js;    
        //Application["counter"]=js;    
        //将数据记录写入文件    
        string   file_path=Server.MapPath   ("counter.txt");    
        StreamWriter   fs=new   StreamWriter(file_path,false);    
        fs.WriteLine(js);    
        fs.Close   ();    
   
   
      }  
         
      #region   Web   窗体设计器生成的代码  
      ///   <summary>  
      ///   设计器支持所需的方法   -   不要使用代码编辑器修改  
      ///   此方法的内容。  
      ///   </summary>  
      private   void   InitializeComponent()  
      {          
        this.components   =   new   System.ComponentModel.Container();  
      }  
      #endregion  
    }  
  }  
   
  Top

7 楼bingbingcha(不思不归,不孟不E,原来是头大灰狼)回复于 2005-08-05 07:52:57 得分 0

if(File.Exists(System.Web.HttpContext.Current.Server.MapPath("count.txt")))  
  这个路径必须是你网站目录内..如果是其他盘就写全路径("D:")  
   
  如果依然问题存在,就输入这个目录内的文件看一下..Top

8 楼LoveMango(幻风)回复于 2006-03-13 13:14:48 得分 0

markTop

相关问题

  • 有关访问站点统计!
  • asp.net2.0问题(2)如何统计在线人数,及统计当前页面的访问人数及列表?
  • 求高效率的网站点击率统计和页面访问统计技术实现方案!
  • 我的网站有10个版面,我要统计每个版面的访问人数。。。。。
  • 关于用文件系统TextStream对象实现网页访问浏览人数统计的问题
  • 怎么访问站点?
  • 网站访问统计
  • 访问统计的问题
  • jsp 访问统计问题
  • 站点统计问题

关键词

  • application
  • 文件
  • 代码
  • jishu
  • totali
  • srd
  • objstreamreader
  • objstreamwriter
  • mappath
  • 路径

得分解答快速导航

  • 帖主:oracleunix

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo