【发布时间】:2012-07-05 05:42:30
【问题描述】:
每个搜索数据库都有大约 50 个应用程序变量。来自 Single Search.aspx 页面的总共 50 个搜索 Db 是 querid,具体取决于它连接到特定数据库的 URL 中传递的 QueryString。
例如:if Search.aspx?li=1 然后连接到1SearchDB
if Searcg.aspx?li=2 then Connect to 2SearchDB.....
50SearchDB 我根据 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 的页面加载中:
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;
}
现在,我想将这些应用程序变量添加到 QUEUE 并在达到 1000 或在某些指定的 TIME INTERVAL 说 20 分钟后将值写入 DB 或 Windows 事件日志。
是否编写任何服务或其他...!
【问题讨论】:
-
您是否将访问者的数量存储在相关数据库中?
-
是的!我想将它存储在数据库中!但不是在每个用户页面请求之后。我想将它存储在 QUEUE 中,直到它达到 1000 或 20 分钟后,哪个更早。当用户请求页面时,它只需添加到 QUEUE 服务,然后插入所有这些。怎么办?
标签: asp.net wcf global-variables job-scheduling hitcounter