Istnieje kilka rzeczy, które możesz zrobić:
1. Inicjalizacja aplikacji
Możesz użyć modułu inicjalizacji aplikacji, który jest dostarczany z IIS 8.0
możesz mieć coś takiego w swoim web.config
<applicationInitialization
doAppInitAfterRestart="true" >
<add initializationPage="/" />
</applicationInitialization>
Spowoduje to wysłanie żądania do katalogu głównego aplikacji ( initializationPage="/"
) za każdym razem, gdy aplikacja uruchomi się automatycznie.
Możesz także skonfigurować tryb startowy dla swojej puli aplikacji, Always Running
co oznacza, że za każdym razem, gdy IIS uruchomi się ponownie, upewni się, że pulę aplikacji uruchomisz natychmiast (to jest po kliknięciu puli aplikacji prawym przyciskiem myszy, a następnieAdvanced Settings
i Preload
dla samego (miejscu prawym przyciskiem myszy na stronie to Manage Site
wtedyAdvanced Settings
2. Wyłącz limit czasu bezczynności
Dodatkowo możesz wyłączyć idleTimeout (domyślnie IIS zamknie aplikację po 20 minutach aktywności), zmieniając wartość in Idle Time-out
dla puli aplikacji na 0 (nieskończona)
3. Wyłącz okresowe recykling
również Regular Time Interval (minutes)
domyślnie wyłączone IIS ponownie przetworzy aplikację co 29 godzin.
Dla
applicationInitialization
idzie do<configuration><system.webServer>
Z mojego doświadczenia, AlwaysRunning i Preload włączone nie przyspieszają zbytnio. Największym czasem oczekiwania jest kompilacja dynamiczna (którą można naprawić za pomocą prekompilacji aspx) oraz ładowanie zestawów do pamięci i buforowanie.
źródło