Prima richiesta dopo un po 'sempre lenta: ASP.NET MVC / IIS 8.5 / Windows Server 2012 R2 VPS


12

Sto ospitando un'applicazione ASP.NET MVC 5 a basso traffico su un VPS con Windows Server 2012 R2 / IIS 8.5, con 1 GB di RAM.

Il mio problema è che la prima richiesta dopo qualche tempo senza alcuna richiesta ottiene sempre una risposta lenta, circa 1,5 secondi secondo Chrome Dev Tools. Le richieste / risposte di aggiornamento successive richiedono solo circa 45 ms .

Ho già impostato la modalità di avvio su AlwaysRunning nel pool di applicazioni e Preload abilitato su True a livello di sito Web, ma non ha avuto alcun effetto . Anche se non ci sono cambiamenti / upload, dopo un po 'di tempo, con la richiesta successiva ci vogliono 1,5 secondi per ottenere una risposta.

Risposte:


9

Il problema è che è necessario installare la funzionalità IIS Application Initialization. Quindi dovrebbe funzionare con la tua configurazione.

L'immagine è tratta dal blog di Rick Strahl :

Funzionalità IIS

Ricorda anche di impostare:

  • Avvia la modalità su AlwaysRunning nel pool di applicazioni
  • Precarico abilitato su True a livello di sito Web

È possibile configurare queste impostazioni senza installare il modulo di inizializzazione dell'applicazione , ma non avranno alcun effetto.

Maggiori informazioni qui .


0

Esiste potenzialmente una mancata corrispondenza della versione tra la versione di .NET Framework che il tuo sito web sta prendendo di mira rispetto alla versione di .NET Framework Runtime installata sul Web Server?

E stai implementando un sito Web che non è precompilato e / o aggiornabile? -

Impostazioni precompilate avanzate

Gli aggiornamenti della versione di .NET Runtime devono essere altamente compatibili con le versioni precedenti. Tuttavia, ho riscontrato un problema molto simile durante la migrazione di più siti Web destinati a .NET 4.5.1 Framework da un server Windows Server 2008 R2 a un server Windows Server 2012 R2 patchato a .NET 4.6 Runtime. Tutti i caricamenti della mia pagina iniziale (su più siti Web) hanno iniziato a richiedere due minuti per ogni singola pagina, anziché una frazione di secondo. E tutti i miei esperimenti con diverse impostazioni IIS non hanno avuto successo nel risolvere il problema.

Alla fine sono stato in grado di risolvere il problema in due modi:

  1. Ricreare completamente il server, patchato con .NET 4.5 Runtime ha risolto il mio problema (insieme all'aggiunta di un'impostazione del registro per bloccare l'installazione di .NET 4.6.1 ).
  2. In alternativa, la ridistribuzione dei miei siti Web con "Precompila" selezionata e con "Consenti di essere aggiornabile" deselezionata ha risolto anche il mio problema.

Al contrario, tutti i miei tentativi di ripristinare o ripristinare la versione di .NET Runtime sul server a .NET 4.5 Runtime non hanno risolto i problemi di caricamento della mia pagina. (Non esiste essenzialmente alcun processo pulito e affidabile per il rollback completo di un .NET Runtime a corto di re-imaging del server.)

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.