Visual Studio 디버거에서 MVC4 웹 사이트를 실행할 때 문제가 발생합니다. 너무 많은 페이지가 열리면 아약스 요청을 보내는 데 시간이 오래 걸립니다. 매우 이상한 점은 페이지 중 하나를 닫으면 요청이 즉시 시작된다는 것입니다.아약스 요청시 매우 긴 "대기"시간
자세한 내용 ... 프레임 워크 : MVC 4 IDE : 비주얼 스튜디오 2010 브라우저 : IE 9/크롬
컨트롤러 : 내가 AsyncController 및 상속 모두이 시도했다
[Authorize]
[SessionState(SessionStateBehavior.Disabled)]
public class AnalyticsController
: Controller
{
public ActionResult SaveWorkspace(Workspace model)
{
var returnVal = _save(model);
return Json(new { actionResult = returnVal, messages = new string[] {} });
}
}
동일한 결과를 가진 컨트롤러에서.
는 클라이언트 :
$.ajax({
url: '/Analytics/SaveWorkspace',
type: "POST",
dataType: "json",
contentType: "application/json; charset=utf-8",
data: JSON.stringify(workspace),
success: function (result) {
alert("Function Executed");
}
});
은 위 내가 사용하는 아약스 호출입니다. 내가하는 일은 웹 페이지의 여러 링크를 클릭하면 새 창이 열립니다. 테스트를 위해 디버거에서 초기 브라우저를 열었고 메인 페이지에서 5 개의 다른 브라우저를 생성했습니다. 위의 호출은 디버거가 시작한 창에서 즉시 실행되지만 네트워크 캡처에서 요청을 볼 때 결국 시간이 초과 될 때까지 "보류 중"이라고 표시됩니다.
흥미로운 점은 내가 생성 한 창 중 하나를 닫으면 요청이 보류 상태에서 변경되고 내 컨트롤러로 이동하여 예상대로 돌아올 수 있다는 것입니다. 조금 더 놀고, 다시 시도하면 (추가 브라우저를 열지 않음) 즉시 서버로 전송되지만, 다섯 번째 브라우저를 열면 다시 느려집니다. 특정 창에 아무 것도 잘못되지 않았 음을 확인하기 위해 여러 가지 테스트를 수행했으며, 요청하지 않은 5 개의 브라우저가있는 것으로 보입니다.
다음은 제 5 브라우저 창을 닫을 때 성공한 요청의 스크린 샷입니다. 여기
여기
여기
내 타이밍
중요한 것은 캡처입니다 내 응답 헤더의 캡처 내 요청 헤더의 캡처입니다 46 초 대기 기간이 있고 그 다음에 두 개의 시작 기간이있는 이유는 실제로 이해할 수 없습니다. 첫 번째 시작 기간은 길었고, 다섯 번째 브라우저 창을 닫으면 두 번째 시작이 발생했습니다.
나는 무슨 일이 일어나고 있는지 진단하는 데 도움이되는 데이터와 가능한 한 자세하게 설명하려고 노력했다. 더 좋은 그림을 그리기 위해 할 수있는 일이 있다면, 언제든지 댓글을 남길 수 있습니다. 어떤 제안이라도 환영 할 만하다.
감사합니다.
컨트롤러 액션에서이'_save (model) '메소드가 실제로 무엇을하는지 설명하지 못했습니다. 이 문제를 더 디버깅하기 위해 나는 컨트롤러 액션을 추가로 연기하고이'_save' 호출을 제거하는 것으로 시작합니다. 지금 같은 행동을 볼 수 있습니까? 그렇지 않다면, 문제가이'_save' 메소드에 있음이 분명합니다. 그렇다면, 꽤 이상합니다. 또한 어떻게 IE를 사용하여 웹 개발을 할 수 있습니까? Internet Explorer가 아닌 웹 브라우저를 사용해보십시오. –
요청이 보류 중이기 때문에이 시점까지 만들지 않기 때문에 _save (모델)라고 생각하지 않습니다. 이 코드를 제거하면 여전히 동일한 문제가 발생합니다. – mvcNewbie