シナリオ:
- unfocus で入力フィールドを検証するロール済みの jQuery Ajax 投稿を所有する
- フォームに投稿するための標準送信ボタン
検証を開始し、firebug で検証が完了するまで待機すると、[すべて保存] をクリックして問題ありません。ただし、フィールドに変更を加えてから送信ボタンを直接クリックすると (したがって、ajax と標準の投稿の両方がほぼ同時に発生します)、リクエストは「接続のリセット」を返す前にブラウザーでハングします。VS デバッグで実行している場合、一時停止しない限り何も表示されません。次に、次のコールスタックが表示されます。
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 アプリケーションは、Win7/IIS7 でローカルに実行されている、いくつかのレガシー Web フォーム ページ (ajax 投稿と標準投稿の両方に含まれるページは同じ Web フォーム ページです) を使用します。
ajax 検証が起動している間、送信ボタンを無効にする可能性があります。ただし、そうしても、この一見時間ベース/同時要求の問題の原因を知りたいと思っています。