我有大约10个会话变量用于存储每个不同的10个分类明智的文件下载计数。我不知道为什么?但是我的会话变量设置为Global.asax会自动获得RESET。如何防止asp.net中Global.asax文件的会话值重置?
因为机器没有重启。 仍然文件下载计数器得到重置。任何想法? Plz建议我任何解决方案。
在Global.asax中:
void Application_Start(object sender, EventArgs e)
{
Application.Add("MGM",0);
Application.Add("PC",0);
Application.Add("NC",0);
Application.Add("TC",0);
Application.Add("PGC",0);
}
The *shortCode* parameter is name of Global Session from Global.asax file. that i am passing to get the counter and increment accordingly.
In Download.aspx.cs Page:
private int GetCount(string shordCode)
{
int count=0;
count = Convert.ToInt32(Application[shortCode]);
lock (Application[shortCode])
{
Application[shortCode] = ++count;
}
return count;
}
我该存储值和文本文件后相应某些计数更新说500,如果是该怎么办?我们的同事说,如果假设许多用户下载文件,并且如果两者都从文本文件访问相同的值,那么可能会出现不安。我很困惑......!帮助赞赏。
感谢@Joshua回复,那么我该怎么做才能避免这种情况呢?我应该写入textfile或sqlserver ..? – 2012-08-11 08:16:04
我见过的大多数网站都直接将这种性质的东西存储到数据库中。我甚至会考虑将这种类型的数据缓存在应用程序状态中的唯一情况是,如果该网站收到大量的流量,并且该网站正在被数据库收缩。即使如此,我仍会直接将更改保存到数据库,并简单地更新缓存的结果。据我的理解,这给你两全其美。 – 2012-08-11 08:18:24
好吧!非常感谢...!我会尝试存储到数据库..! – 2012-08-11 08:25:13