Pierwsze żądanie po pewnym czasie jest zawsze wolne - ASP.NET MVC / IIS 8.5 / Windows Server 2012 R2 VPS


12

Hostuję aplikację ASP.NET MVC 5 o niskim natężeniu ruchu na VPS z Windows Server 2012 R2 / IIS 8.5, z 1 GB pamięci RAM.

Mój problem polega na tym, że pierwsze żądanie po pewnym czasie bez żadnych żądań zawsze otrzymuje powolną odpowiedź - według Chrome Dev Tools około 1,5 sekundy . Kolejne żądania / odpowiedzi odświeżania zajmują tylko około 45 ms .

Już ustawiłem Start Mode na AlwaysRunning w puli aplikacji, a Preload Enabled na True na poziomie witryny, ale nie miało to absolutnie żadnego efektu . Nawet jeśli nie ma żadnych zmian / wysyłanych plików, po pewnym czasie, przy następnym żądaniu odpowiedź trwa 1,5 s.

Odpowiedzi:


9

Problem polega na tym, że musisz zainstalować funkcję IIS Application Initialization. To powinno działać z twoją konfiguracją.

Zdjęcie pochodzi z bloga Ricka Strahla :

Funkcja IIS

Pamiętaj również, aby ustawić:

  • Uruchom tryb do AlwaysRunning w puli aplikacji
  • Wstępne ładowanie włączone do True na poziomie strony internetowej

Możesz ustawić te ustawienia bez zainstalowanego modułu inicjalizacji aplikacji , ale wtedy nie będą miały żadnego efektu.

Więcej informacji tutaj .


0

Czy potencjalnie istnieje niezgodność między wersją .NET Framework, na którą kierowana jest witryna, w porównaniu z wersją środowiska uruchomieniowego .NET Framework zainstalowaną na serwerze sieci Web?

A czy wdrażasz witrynę internetową, która nie została wstępnie skompilowana i / lub jest możliwa do zaktualizowania? -

Zaawansowane ustawienia prekompilacji

Uaktualnienia wersji środowiska .NET Runtime mają być wysoce kompatybilne wstecz. Wystąpił jednak bardzo podobny problem podczas migracji wielu stron internetowych ukierunkowanych na platformę .NET 4.5.1 Framework z serwera Windows Server 2008 R2 na serwer Windows Server 2012 R2 z poprawką do środowiska uruchomieniowego .NET 4.6. Wszystkie moje początkowe ładowanie stron (w wielu witrynach) zaczęły zajmować dwie minuty dla każdej strony, zamiast ułamka sekundy. I wszystkie moje eksperymenty z różnymi ustawieniami IIS zakończyły się niepowodzeniem w rozwiązaniu problemu.

Ostatecznie udało mi się rozwiązać problem na jeden z dwóch sposobów:

  1. Całkowite odtworzenie serwera, załatane do środowiska .NET 4.5 Runtime, rozwiązało mój problem (wraz z dodaniem ustawienia rejestru blokującego instalację .NET 4.6.1 ).
  2. Alternatywnie, ponowne wdrożenie moich stron internetowych z zaznaczoną opcją „Prekompiluj” i niezaznaczoną „Zezwalaj na aktualizację” również rozwiązało mój problem.

Natomiast wszystkie moje próby wycofania lub naprawy wersji środowiska .NET Runtime na serwerze do środowiska .NET 4.5 Runtime nie rozwiązały moich problemów z ładowaniem strony. (Zasadniczo nie ma czystego, niezawodnego procesu pełnego wycofania środowiska uruchomieniowego .NET bez ponownego tworzenia obrazu serwera.)

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.