为什么同一个存储过程调用会多次触发

时间:2012-03-13 01:50:46

标签: c# javascript sql

在我添加记录的网页中,会多次添加一些记录。然后我发现同一个DB调用被多次发送(分析时)。不只是那个SP,还有其他一些SP。但他们只返回数据。所以他们没有引起任何问题。但是这种行为仅存在于生产站点中。不在开发网站。因此,很难跟踪SP呼叫的来源。我检查了循环和东西,但没有。

以下是javascript文件中的HTTP请求:

var strParams = "?";
strParams += "Process="           + "assignQuestion";                               
...
strParams += "&measure="          + measure;

xmlAssignQuestion = new ActiveXObject("Microsoft.XMLHTTP");
xmlAssignQuestion .onreadystatechange = assignQuestionBack;
xmlAssignQuestion .open("POST", "AssignQuestion.reliability" + strParams, false);
xmlAssignQuestion .send();

这是HTTP处理程序

if (process.Equals("assignQuestion"))
{
    int measure = int.Parse(context.Request.QueryString["measure"]);

    string ret = DBClasses.AssignToGroup.storeQuestionp(measure);

    if (long.Parse(ret) == -1)
        context.Response.Write("f");
    else context.Response.Write(ret);

    context.Response.Flush();
    context.Response.End(); 
}

提前致谢!

1 个答案:

答案 0 :(得分:0)

为了防止生产数据被破坏,我会在适当的列组合中添加一个唯一约束,以确保不会发生重复。在下次客户端操作尝试插入重复时添加约束时,它们将收到错误,这将有助于识别导致它发生的场景。