我有一个带有一个网页的 Asp.Net 网站,其唯一目的是以查询字符串的形式接收数据,然后根据需要将其分开并将这些数据存储到数据库中。
该数据来自多个车辆跟踪系统。每辆车每 30 秒发送一串数据作为查询字符串。
我在我的网页中编写了这样的代码,当网页被访问时,在页面加载中,我读取查询字符串并对数据库执行插入操作。像这样的东西-
protected void Page_Load(object sender, EventArgs e)
{
con.Open();
string input = Request.QueryString["vinput"];
var m = Regex.Match(input, @"~(.+)@(.+)@(.+)@(.+)@(.+)@(.+)@(.+)@(.+)@(.+)@(.+)@(.+)@(.+)@(.+)@(.+)@(.+)@(.+)@(.+)@(.+)@(.+)@(.+)@");
if (m.Success)
{
string[] vals = new string[20];
int j = 1;
for (int i = 0; i < 20; i++)
{
vals[i] = m.Groups[j].Value;
j++;
}
cmd.CommandText = "insert into tracking (vehicle_no,hardware_id,lat,lng,speed,direction,an0,an1,an2,an3,di0,di1,di2,di3,do0,do1,do2,do3,tdate,ttime) values('" + vals[0] + "','" + vals[1] + "','" + vals[2] + "','" + vals[3] + "','" + vals[4] + "','" + vals[5] + "','" + vals[6] + "','" + vals[7] + "','" + vals[8] + "','" + vals[9] + "','" + vals[10] + "','" + vals[11] + "','" + vals[12] + "','" + vals[13] + "','" + vals[14] + "','" + vals[15] + "','" + vals[16] + "','" + vals[17] + "','" + vals[18] + "','" + vals[19] + "')";
cmd.Connection = con;
cmd.ExecuteNonQuery();
}
}
我创建了一个模拟器应用程序来测试这个站点来代替车辆跟踪系统。当有来自一到三个模拟器实例的数据时,此站点工作正常,但当超过 3 个模拟器实例同时发送数据时(大约)无法将数据保存到数据库。
例如,我要发送 5 条记录,每次从模拟器发送一条记录,并有 6 个这样的模拟器实例向页面发送数据。在数据库的最后,我看到只插入了 15 条记录,而不是 30 条记录。顺便说一下,这个网站在IIS 5.1中运行。
我该如何处理这个问题?请提出建议。
更新:终于找到了问题。经过大量谷歌搜索后找到了这个链接和这个。它与服务器有关,因为在 windows xp IIS 中基本/启动器的请求限制仅为 3。