2011-01-10 13 views
5

Mam aplikację ASP.net MVC 2, która działa dobrze lokalnie. Jednak kiedy przenoszę pliki na mój serwer produkcyjny, otrzymuję opóźnienie wynoszące około 30 sekund, zakładam, że jest to pierwsza kompilacja. Po tym aplikacja działa poprawnie. Następnie po około 20-30 minutach nieużywania, aplikacje wymagają kolejnych 30 sekund, aby załadować.Jak zmniejszyć czas pierwszego ładowania w ASP.net MVC 2?

Próbowałem wstępnie skompilować kod, ale podczas pierwszego ładowania nadal występuje opóźnienie.

Czy istnieje jakaś sztuczka, aby aplikacja działała szybciej przy pierwszym załadowaniu?

Używam ASP.net 3.5, IIS 6, Visual Studio 2010, MVC 2.

Dzięki

Odpowiedz

2

Postanowiłem napisać aplikację usługi systemu Windows, aby wywoływać moje strony co 10 minut, do tej pory działa dobrze.

+0

Istnieje kilka komercyjnych usług, które zrobią to za Ciebie (niektóre za darmo, jak sądzę). To miecz obosieczny - i obie strony cięte. jeśli masz wystarczający ruch, nigdy go nie zobaczysz. Jeśli masz bardzo mały ruch, każdy odwiedzający go zobaczy. – Robaticus

6

Scott Gu ma dobrą blogu here

EDIT:

Nie jest podobny do post here na serwerze, który może być przydatny.

+1

To jest dobre dla ASP.NET 4 i IIS 7.5, jednak używam ASP.NET 3.5 i IIS6 – Bill

+0

@Bill: zobacz moją edycję. – VoodooChild

0

Zasadniczo pula aplikacji jest bezczynna i automatycznie zatrzymuje proces roboczy. Następnie, podczas próby uzyskania dostępu do strony, należy uruchomić proces roboczy i przygotować wszystko.

Jeśli używasz serwera Server 2003, możesz powiedzieć, aby nie wyłączał procesu roboczego. Benson Yu ma dobrą odpowiedź tutaj:

http://forums.asp.net/p/1307768/2666610.aspx

Zasadniczo, przejdź do Menedżera IIS, znajdź swój asp.net 3.5 puli aplikacji, który udostępnia swoją aplikację, a zmiany jego właściwości użytkowych albo wolno wyłączać proces roboczy lub mieć dłuższy czas oczekiwania.

+0

jego wspólne środowisko i ja nie mam kontroli nad iiS – Bill