我想在我的ASP站点中插入一个访问者计数器,所以我使用了一个global.asax文件来实现它。问题是会话结束时“AllVisitorCount”获取默认值,在我的web.Config中设置为0。
代码是:
void Session_Start(object sender, EventArgs e) {
// Code that runs when a new session is started
int allVisitorCount = 0;
if (Application["AllVisitorCount"] != null)
allVisitorCount = (int)(Application["AllVisitorCount"]);
else
Application.Add("AllVisitorCount", 0);
allVisitorCount++;
Application["AllVisitorCount"] = allVisitorCount;
}
答案 0 :(得分:1)
确保在web.config中将slidingExpiration设置为False
答案 1 :(得分:1)
“应用程序”不是永久对象。它是在应用程序启动后创建的(例如,第一个会话已启动),并在应用程序池超时后进行处置。您可以保留变量或只是更改AppPool中的“空闲超时”参数(IIS =>应用程序池=>您的AppPool(如果尚未定义,则为DefaultAppPool)=>高级设置=>闲置超时)。
答案 2 :(得分:0)
您的应用程序池可能会超时,从而清除所有应用程序变量。
请提供更多详细信息,例如:这是托管在IIS,IIS Express,Cassini; Session如何结束(以编程方式,超时等);你有没有在Application_End上放置一个断点来查看事件是否被触发。