2016-08-31 2 views
1

.NET WebForms 응용 프로그램에서 작업 할 때마다 빌드 할 때마다 빌드 이후 첫 페이지로드가 일반적으로로드하는 데 시간이 더 걸립니다. 이것은 페이지를로드하기 전에 빌드를 기다린 후에도 발생합니다. 첫 번째 페이지로드 대신 postbuild에서 작업을 초기화하기 위해 IIS/.NET을 변경하여 인력을 늘릴 수있는 방법이 있습니까?.NET 빌드로 인해 첫 페이지로드가 상당히 느려짐

답변

2

예,하실 수 있습니다. this. 인용 :

당신은 다음과 같이 IIS 8.0에서 박스 제공 응용 프로그램 초기화 모듈을 사용할 수 있습니다

:

<applicationInitialization 
    doAppInitAfterRestart="true" > 
    <add initializationPage="/" /> 
</applicationInitialization> 

이 앱의 루트에 요청을 보내드립니다 (initializationPage = "/") 앱이 자동으로 시작될 때마다

또한 항상 때마다 다시 시작 IIS 의미 실행에 응용 프로그램 풀의 시작 모드를 구성 할 수 있습니다, 그것은 것 바로 응용 프로그램 풀 다음 고급 클릭의 경우 즉시 (이 응용 프로그램 풀을 시작해야합니다 설정).

+0

이 응용 프로그램 초기화는 appSettings 노드 내에 추가됩니까? –

+0

아니요, 내부에 IIS 기능이 없으므로. 또한 다음을 확인하십시오 : https://www.iis.net/configreference/system.webserver/applicationinitialization –

+0

또한 Windows 기능에 "Application Initialization"기능이 없으면 설치해야합니다. –

0

전문가 서버는 대기 시간이 거의 없지만 약간의 조정이 필요합니다. 또한 기본적으로 응용 프로그램은 IIS에서 정기적으로 재활용됩니다 (일부 예외가 발생할 때, 일부 파일이 변경된 경우 또는 일부 임계 값에 도달했을 때). 전문 웹 응용 프로그램 호스팅은 단순하지만 아무것도 아닙니다. 아마도 서버 오류에 대한 도움을 얻을 수 있습니다.

또 다른 옵션은 사전 컴파일과 JIT 편집을 혼합하지 않기위한 것입니다. 사전 컴파일 만하는 경우 응용 프로그램을 배포 할 때 컴파일 작업을 수행 할 필요가 없어 빠른 시작 시간이 소요됩니다. 소스 만 배포하는 경우 변경을 수행 할 때 응용 프로그램 도메인을 제거 할 필요가 없습니다. 즉, 변경 사항 만 재 컴파일해야하므로 훨씬 빠릅니다.

물론 ASP.NET 코어는 csc을 사용하여 여러 어셈블리를 만들고 디스크에 저장하는 기존 시스템과 달리 전체 메모리 내에서 컴파일 작업을 수행 할 수 있습니다 (로드).을 디스크에서 병합 한 다음 을 다시으로 저장하고 다시로드하고 초기화하십시오.

관련 문제