请问如果在服务器端使用TIMER类.在GLOBAL.ASAX里面

dan0926 2006-10-25 05:34:27
<%@ Application Language="C#" %>

<script runat="server">

System.Timers.Timer timer;
void Application_Start(object sender, EventArgs e)
{
// 在应用程序启动时运行的代码
Application["count"] = 0;
timer = new System.Timers.Timer(10000);
timer.Elapsed += new System.Timers.ElapsedEventHandler(refurbish);
timer.Start();

}
void refurbish(object sender,System.Timers.ElapsedEventArgs e)
{
string constr = @"provider=Microsoft.jet.oledb.4.0;data source=C:\Documents and Settings\fireson\My Documents\Visual Studio 2005\LiveWeb\db\db.mdb";
System.Data.OleDb.OleDbConnection con = new System.Data.OleDb.OleDbConnection(constr);
con.Open();
string cmdstr = "insert into onlineuser('userName') values('a')";
System.Data.OleDb.OleDbCommand cmd = new System.Data.OleDb.OleDbCommand(cmdstr, con);
cmd.ExecuteNonQuery();
con.Close();
}

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

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

}

void Session_Start(object sender, EventArgs e)
{
// 在新会话启动时运行的代码
Application.Lock();
Application["count"] = int.Parse(Application["count"].ToString()) + 1;
Application.UnLock();
}

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

</script>

为什么这样不行呢,没有写到DB
...全文
96 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
dan0926 2006-10-25
  • 打赏
  • 举报
回复
高手,谢谢啊,但是不能用...
孟子E章 2006-10-25
  • 打赏
  • 举报
回复
http://dotnet.aspx.cc/Web/WebApplication1.zip

62,073

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧