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();在本地调试获取都正常的,为什么上传服务器后就出现:
未将对象引用设置到对象的实例。 说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。
源错误:
行 16: protected void Page_Load(object sender, EventArgs e)
行 17: {
行 18: Label1.Text = "访问量:" + Application["All_Count"].ToString();行 19: }
行 20: }
--------------------编程问答-------------------- 學習了 --------------------编程问答-------------------- Application.Lock();
Application.UnLock();
放到Application_Start(object sender, EventArgs e)试试看 --------------------编程问答-------------------- int count =Convert.ToInt32(read["All_Count"]);
read["All_Count"]) 改成application["ALL_Count"]试试
补充:.NET技术 , Web Services