2013-08-08 2 views
0

동일한 작업을 수행하지만 하나의 GET 요청을 처리하고 다른 하나는 POST 요청을 처리하는 ASP.NET MVC 컨트롤러에서 두 개의 동작이 제공됩니다. GET 동작은 항상 0.1 초 후에 반환되고 POST 동작은 항상 30 초 후에 반환됩니다. 작업 자체는 매우 빠르게 완료되지만 어떤 이유로 인해 브라우저 (IE 및 Chrome)는 네트워크 프로필러에서 30 초를 기다리는 것으로 표시됩니다. 지연을 유발할 수있는 원인은 무엇입니까? 이 디버깅 할 수있는 방법이 있습니까? 각MVC GET 동작은 0.1 초가 걸리고 동일한 POST 동작은 30 초가 걸립니다.

[HttpGet] 
    public ActionResult MyAction() 
    { 
     return View("MyView"); 
    } 

    [HttpPost] 
    public ActionResult MyAction(object obj) 
    { 
     return View("MyView"); 
    } 

네트워크 프로파일 :

http://MyDevServer.com:8080/MyController/MyAction 방법 : GET 상태 : 200 OK 시간 : 0.194 초

http://MyDevServer.com:8080/MyController/MyAction 방법 : POST 상태 : 200 OK 시간 : 30.39 초

+0

IIS에서 호스팅됩니까? – rene

+0

POST 버전의 사용자 작업 메서드에 중단 점을 설정하면 요청이 작업 메서드에 도달하는 데 시간이 오래 걸리 나 빠르게 진행되지만 클라이언트로 돌아 오는 데 시간이 걸립니까? –

+1

db.connection에서 코드의 문제를 찾아야합니다 (실제 코드를 ActionResult에 표시하십시오). –

답변

0

살펴볼 몇 가지 사항 :

  1. 스택에 연결되어 실행, 뷰 엔진, 필터 또는 공급자를 지연시키는 코드가 있습니까? EQATEC Profiler과 같은 프로파일 러를 사용하여이 사실을 알 수 있습니다. Telerik이 인수했지만 연말까지는 여전히 무료입니다.

    1a. MVC가 표준 방식으로 견해를 찾도록 하시겠습니까? 어떤 방식 으로든 ViewLocations에 추가하고 있습니까?

  2. 서버에서 어떤 현상이 발생합니까? POST가 이상한 일이 발생했음을 나타 내기 위해 성능이 급상승하는 모습을보고 있습니까?

  3. 개체 인수를 제거하면 어떻게됩니까? 어떤 변화?

  4. 코드입니다. 이 프로젝트에서 Entity Framework를 사용하고 있습니까? This은 설정에 따라 경우에 따라 성능을 크게 향상시킬 수 있습니다.

  5. IIS에 응용 프로그램 풀을 설명하십시오. 방법? 다른 설정?

+0

IIS에 배포 했으므로 문제가 없으므로 문제는 내 dev 서버에만 있습니다. 나는 Content-Length를 제안한 http://stackoverflow.com/questions/12606898/mysterious-1min-delay-in-http-post-between-browser-and-nginx를 발견했다. 그러나 나는 체크했다. 그리고 이것은 보내지고있다. 바르게 – Will