当前位置:编程学习 > C#/ASP.NET >>

globel.asax在线统计的问题——急

以下是globel.asax代码: 

<%@ Application Language="C#" %> 
<%@ Import  Namespace = "System.Data" %> 
<%@ Import  Namespace = "System.Data.SqlClient" %> 
<%@ Import  Namespace = "System.Data.Sql" %> 

<script runat="server"> 

    string myConnStr = System.Configuration.ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString; 
    void Application_Start(object sender, EventArgs e) 
    { 
      //在应用程序启动时运行的代码 
        //string myConnStr = System.Configuration.ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString; 
        SqlConnection Conn = new SqlConnection(myConnStr); 
        Conn.Open();//打开数据库 
        SqlCommand comm = new SqlCommand("select * from Count where C_ID=1", Conn); 
        SqlDataReader read = comm.ExecuteReader(); 
        if (read.Read()) 
        { 
            int count =Convert.ToInt32(read["All_Count"]); 
            Application["All_Count"] = count; 
        } 
        Conn.Close();//关闭数据库 
        Application.Add("All_Count", 0);//在线人数初始化为0 
        //Application["All_Count"] = 0;        
      
    } 
    
    void Application_End(object sender, EventArgs e) 
    { 
        //在应用程序关闭时运行的代码 

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

    } 

    void Session_Start(object sender, EventArgs e) 
    { 
        //在新会话启动时运行的代码 
        string pageurl = Request.Url.ToString(); 
        if (pageurl.EndsWith("Default.aspx")) 
        { 
            Application.Lock(); 
            Application["All_Count"] = int.Parse(Application["All_Count"].ToString())+1; 
            //string myConnStr = System.Configuration.ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString; 
            SqlConnection Conn = new SqlConnection(myConnStr); 
            Conn.Open(); 
            SqlCommand Comm = new SqlCommand("update Count set All_Count =' " + Application["All_Count"].ToString() + " 'where C_ID=1", Conn); 
            Comm.ExecuteNonQuery(); 
            Conn.Close();  
            Application.UnLock(); 
        } 
    } 

    void Session_End(object sender, EventArgs e) 
    { 
        //在会话结束时运行的代码。 
        // 注意: 只有在 Web.config 文件中的 sessionstate 模式设置为 
        // InProc 时,才会引发 Session_End 事件。如果会话模式 
        //设置为 StateServer 或 SQLServer,则不会引发该事件。 

    } 
      
</script> 


以上语句我用Label1.Text = "访问量:" + Application["All_Count"].ToString();在本地调试获取都正常的,为什么上传服务器后就出现: 

未将对象引用设置到对象的实例。

源错误: 


行 16:    protected void Page_Load(object sender, EventArgs e) 
行 17:    { 
行 18:        Label1.Text = "访问量:" + Application["All_Count"].ToString();行 19:    } 
行 20: }  --------------------编程问答-------------------- Application.Lock();
Application["All_Count"] = int.Parse(Application["All_Count"].ToString())+1; 
Application.unLock(); --------------------编程问答-------------------- 好像没用,改了在本地都正常啊,上传到web服务器就出现“未将对象引用设置到对象的实例。”。上传在一个虚拟目录下有没有关系啊?
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,