아무도 응용 프로그램 준비 작업을 위해 ASP.NET 메서드 Application_Start를 사용하여 이의 제기를 알고 있습니까?웜업을 위해 ASP.NET Application_Start를 사용하여 이의가 있습니까?
는 은 특히, 일반적으로 파일을 미리로드하는 데 필요한 웹 서비스에 대한 알고리즘을 캐시등
는 존재 :
- 서비스 자동 시작 공급자, 우리가 필요로하는 serviceAutoStartProvider, https://weblogs.asp.net/scottgu/auto-start-asp-net-applications-vs-2010-and-net-4-0-series :
- 새로 등록
serviceAutoStartProvider
, 콘크리트 어셈블리 이름과 함께 등록하십시오. - IIS 응용 프로그램에
serviceAutoStartProvider
을 할당하십시오. - IIS 응용 프로그램을 AlwaysRunning으로 구성하십시오.
는 IIS 앱 8.0 응용 프로그램 초기화,
https://docs.microsoft.com/en-us/iis/get-started/whats-new-in-iis-8/iis-80-application-initialization
- 새로 등록
- 지정
initializationPage
을 IIS. - IIS 응용 프로그램을 AlwaysRunning으로 구성하십시오.
는하지만, 두 방법은 각 응용 프로그램에 대한 IIS 구성의 변화를 요구, 무엇을 많은 많은 애플리케이션의 경우에 불편 해제에 대한 추가 위험이있다. ASP.NET Application Life Cycle Overview for IIS 5.0 and 6.0에 따라
:
ASP.NET은하지 각 같이 HttpApplication 예를 들어, 응용 프로그램 도메인의 수명 동안 한 번에 (위해 Application_Start 및 Application_End)를 호출합니다.
따라서, 위해 Application_Start 예를 들어, 워밍업 코드에 대한 좋은 장소처럼 보인다 :를 AlwaysRunning
그것은 단지 IIS 응용 프로그램을 구성 할 필요protected void Application_Start(object sender, EventArgs e)
{
Task.Run(WarmUpBackend);
}
한다. WarmUpBackend
에는 웹 서비스에 필요한 모든 것을 미리로드 할 수 있습니다.
Joe, 감사합니다.하지만 Application_Start보다이 방법이이 시나리오를 해결하는 것보다 낫지 않은 이유는 무엇입니까? 내 질문은 웹 페이지에 대한 요청없이 일부 웹 서비스를 준비하는 것과 관련이 있습니다. 웹 서비스의 경우 일반적으로 DB에 대한 쿼리, 캐시에 미리로드되는 파일 등이 가장 비쌉니다. –