并发AJAX和标准表单POST后连接重置

时间:2010-08-24 09:22:30

标签: c# asp.net ajax connection-reset

情景:

  • 自己滚动jQuery Ajax帖子以验证非聚焦
  • 上的输入字段
  • 表单上的标准提交按钮

如果我导致验证发射并等到我在firebug中看到它完成,那么单击save all is fine。但是,如果我在字段中保留更改,然后直接单击提交按钮(因此,几乎同时发生ajax和标准发布)请求在返回“连接重置”之前挂起在浏览器中。如果在VS调试中运行,除非我按下暂停,否则什么也看不见然后我会看到以下callstack:

System.Web.dll!System.Web.Hosting.IIS7WorkerRequest.ReadEntityCoreSync(byte[] buffer, int offset, int size) + 0x23 bytes
System.Web.dll!System.Web.Hosting.IIS7WorkerRequest.ReadEntityBody(byte[] buffer, int size) + 0x18 bytes
System.Web.dll!System.Web.HttpRequest.GetEntireRawContent() + 0x2d4 bytes
System.Web.dll!System.Web.HttpRequest.GetMultipartContent() + 0x45 bytes
System.Web.dll!System.Web.HttpRequest.FillInFormCollection() + 0xad bytes
System.Web.dll!System.Web.HttpRequest.Form.get() + 0x45 bytes
System.Web.dll!System.Web.HttpRequest.HasForm.get() + 0x46 bytes
System.Web.dll!System.Web.UI.Page.GetCollectionBasedOnMethod(bool dontReturnNull) + 0x62 bytes

背景:

ASP.NET 4 MVC 2 Web应用程序,包含一些遗留的webforms页面(在ajax帖子和标准帖子中涉及的页面是相同的webforms页面)在Win7 / IIS7上本地运行。

我可能会在ajax验证触发时禁用提交按钮。然而,即使我这样做,我也很想知道是什么导致了这个看似基于时间/并发请求的问题。

1 个答案:

答案 0 :(得分:0)

点击发生时,你可以禁用ajax帖子吗? 这样你就必须先检查点击事件中的条件,然后再做其他事情。