我有大约50个应用程序变量为每个搜索数据库。从单个Search.aspx页面中查询总共50个searchDB,具体取决于在连接到特定数据库的URL中传递的查询字符串。例如:如果Search.aspx?li = 1,则连接到1SearchDB,如果Search.aspx?li = 2,则连接到2SearchDB,..... 50SearcgDB。为什么在ASP.NET中一段时间后Global.asax的命中计数器(应用程序变量)设置为'0'?
我维护每个searchDB的总访问者,具体取决于URL中的QueryString并递增GLOBAL.ASAX文件中的应用程序变量。
在Global.asax中:
void Application_Start(object sender, EventArgs e)
{
// Code that runs on application startup
Application["1"] = 0;
Application["2"] = 0;
.
.
Application["50"] = 0;
}
在Search.aspx.cs的Page_Load中:
int LocalBody = Convert.ToInt32(Request.QueryString["li"]);
public void Page_Load(object sender, EventArgs e)
{
Label1.Text = GetHits(LocalBody).ToString();
}
private int GetHits(int LocalBody)
{
int counter=0;
switch (LocalBody)
{
case 1:
Application["1"] = (int)Application["1"] + 1;
counter=(int)Application["1"];
break;
case 2:
Application["2"] = (int)Application["2"] + 1;
counter=(int)Application["2"];
break;
.
.
case 50:
Application["50"] = (int)Application["50"] + 1;
counter=(int)Application["50"];
break; default:
break;
}
return counter;
}
现在的问题,当我启动应用程序,一段时间(30〜40后分钟)它重新启动计数器。当我使用它时,它工作正常!为什么会发生?
,但我没有重新启动机器。它必须坚持仍然我重新启动我的计算机。当我启动应用程序20-25分钟后它显示正确计数器存在于我上次执行计数+ 1。 –
@SHEKHARSHETE池默认情况下具有自动重新启动设置,如果您可以打开并查看它并更改它们,则可以避免这种情况。 – Aristos
好@Aristos我会检查..!如果我在IIS中的WebServer上托管它,它会工作吗? –