我有一个ashx做同步工作;通常需要大约8分钟。同步完成后,将向管理员发送一封电子邮件。但是当我在浏览器中运行ashx时,它会在完成后继续加载,这样管理员就会收到多封电子邮件。
有人能给我一些关于为什么会这样的信息吗?
答案 0 :(得分:0)
如果处理程序没有将数据返回给响应,则浏览器可能会再次尝试请求,直到获得成功状态。在这种情况下,您可以尝试仅为检索成功而响应任何文本:
context.Response.StatusCode = 200;
context.Response.ContentType = "text/plain";
context.Response.Write(string.Empty);
但是,如果处理程序将数据返回到响应并且响应状态代码成功,您可以尝试在发送电子邮件后立即停止响应:
context.Response.End();
return;
而且,只是为了检查,验证您是否正在迭代调用邮件发送多次的循环。