每个搜索数据库都有大约 50 个应用程序变量。从单个 Search.aspx 页面查询总共 50 个 searchDB,具体取决于它连接到特定数据库的 URL 中传递的查询字符串。
例如:如果 Search.aspx?li=1 则连接到 1SearchDB,如果 Search.aspx?li=2 则连接到 2SearchDB,.....50SercgDB。
我根据 URL 中的 QueryString 维护每个 searchDB 的总访问者,并增加 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 分钟)后它会重新启动计数器。当我使用它时,它工作正常!为什么会这样?