ASP.NET MVC / IIS 8.5 / Windows Server 2012 R2 VPS-항상 느린 후 첫 요청


12

RAM이 1GB 인 Windows Server 2012 R2 / IIS 8.5가 설치된 VPS에서 트래픽이 적은 ASP.NET MVC 5 응용 프로그램을 호스팅하고 있습니다.

내 문제는 Chrome Dev Tools에 따르면 요청이없는 시간이 지난 후 첫 번째 요청항상 1.5 초 정도 느린 응답을 얻는다는 것 입니다. 후속 새로 고침 요청 / 응답에는 약 45ms 만 걸립니다 .

이미 응용 프로그램 풀에서 시작 모드 를 AlwaysRunning으로 설정 하고 웹 사이트 수준에서 사전 로드 사용 을 True로 설정 했지만 전혀 효과없었습니다 . 변경 / 업로드가없는 경우에도 시간이 지난 후 다음 요청으로 응답을받는 데 1.5 초가 걸립니다.

답변:


9

문제는 IIS 기능을 설치해야한다는 것 Application Initialization입니다. 그런 다음 구성과 함께 작동해야합니다.

이미지는 Rick Strahl의 블로그에 있습니다 .

IIS 기능

또한 다음을 설정해야합니다.

  • 응용 프로그램 풀 에서 항상 시작 모드시작
  • 웹 사이트 수준에서 사전 로드True로 설정

Application Initialization Module을 설치 하지 않고이 설정을 지정할 수 있지만 아무런 영향을 미치지 않습니다.

자세한 내용은 여기를 참조하십시오 .


0

웹 서버에 설치된 .NET Framework 런타임 버전과 비교하여 웹 사이트에서 대상으로 지정하는 .NET Framework 버전간에 버전이 일치하지 않을 수 있습니까?

그리고 사전 컴파일되지 않았거나 업데이트 가능한 웹 사이트를 배포하고 있습니까? -

고급 프리 컴파일 설정

.NET 런타임 버전 업그레이드는 이전 버전과의 호환성이 뛰어납니다. 그러나 .NET 4.5.1 프레임 워크를 대상으로하는 여러 웹 사이트를 Windows Server 2008 R2 서버에서 .NET 4.6 런타임으로 패치 된 Windows Server 2012 R2 서버로 마이그레이션 할 때 매우 비슷한 문제가 발생했습니다. 여러 웹 사이트에서 모든 초기 페이지로드가 각 개별 페이지에 대해 2 분이 아닌 2 분이 걸렸습니다. 그리고 다른 IIS 설정을 사용한 모든 실험에서 문제를 해결하지 못했습니다.

궁극적으로 다음 두 가지 방법 중 하나로 문제를 해결할 수있었습니다.

  1. 서버를 완전히 다시 생성하고 .NET 4.5 런타임으로 패치하면 .NET 4.6.1 설치차단 하는 레지스트리 설정 추가와 함께 내 문제가 해결되었습니다 .
  2. 또는 "프리 컴파일"을 선택하고 "업데이트 허용"을 선택하지 않은 상태로 웹 사이트를 재배치해도 문제가 해결되었습니다.

대조적으로, 서버 의 .NET 런타임 버전 을 .NET 4.5 런타임 으로 롤백하거나 복구 하려는 모든 시도가 내 페이지로드 문제를 해결하지 못했습니다. ( 서버를 다시 이미징 하지 못한 .NET 런타임을 완전히 롤백하는 깨끗하고 안정적인 프로세스없습니다 .)

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.