ASP.NET MVC – Caricamento iniziale lento

Di recente ho creato un’applicazione web mvc asp.net e l’ho pubblicata online.

Quando si carica per la prima volta il sito Web, si dovrebbe rilevare che occorrono circa 10-15 secondi perché venga effettivamente visualizzato, tuttavia dopo averlo fatto clic una volta, viene caricato con la stessa rapidità con cui mi aspetto la seconda volta. Mi sto solo chiedendo se qualcuno potrebbe avere un’idea del perché il sito Web impiega così tanto tempo?

In genere un’applicazione richiede sempre un po ‘di tempo in più per il caricamento all’avvio del dominio dell’applicazione.

Le cose che aiutano ad esacerbare questo potrebbe essere qualsiasi cosa, dal codice scritto male (IE: Application_Start) a certe librerie che potresti usare (ad esempio gli ORM). Quanti moduli hai caricato?

Per i principianti controlla il tuo web.config per l’infame . Ciò può avere conseguenze significative nelle prestazioni in una configurazione di produzione. Impostalo su “false”!

Consigliare googling qualcosa sulla falsariga di ” migliorare il tempo di avvio delle applicazioni ” e cercare le cose che possono riguardare la tua particolare applicazione.

Aggiornamento dal tuo primo commento:

Se vedi riavviare l’applicazione (si blocca per alcuni secondi) dopo 30 minuti, questo è probabilmente correlato alle impostazioni di Riciclo del pool di applicazioni in IIS.

Vai in Gestione IIS (questo presuppone v7 +):

  1. Pool di applicazioni
  2. Fare clic con il pulsante destro del mouse sul pool utilizzato per le applicazioni
  3. Seleziona “Riciclaggio”, verrà visualizzata una finestra con l’etichetta “Condizioni di riciclaggio”
  4. Ispeziona queste impostazioni poiché determinano quando uccidere automaticamente il pool di app e riavviarlo.

In termini di prestazioni generali potresti voler provare:

  1. Aggiungendo alcune istruzioni di debug che sputano il tempo trascorso nel tuo metodo Application_Start () o in qualsiasi altra posizione applicabile per cercare di catturare ciò che impiega più tempo.
  2. Creare un progetto demo completamente pulito e distribuirlo. Vedi se soffre dello stesso problema. Se non tenta di introdurre sempre più del tuo codice reale fino a quando non rilevi un rallentamento.

Se sei davvero stumped # 2 potrebbe essere la soluzione migliore, anche se probabilmente sarà l’opzione più lenta.

Ho anche avuto lo stesso problema, con il caricamento lento dei siti di asp.net mvc, finalmente ho trovato il modo migliore per caricare un sito, estremamente veloce nel primo caricamento.

La mia soluzione è per Windows Server 2008 R2 e IIS 7.5, ma anche i server di Windows e le versioni superiori di Ii funzionano con alcune semplici differenze.

Innanzitutto, è necessario impostare startMode del pool di applicazioni sempre in esecuzione, in tal modo si eviterà che il pool di applicazioni non funzioni, dopo un po ‘di tempo. (nel mio caso, solo in questo passaggio i miei siti vengono caricati per la prima volta da 45-55 secondi a circa 8-12 secondi) .

nel primo passaggio, non c’è una prima richiesta per il tuo sito web, per il precaricamento del tuo sito web, abbiamo bisogno di un altro passo, cioè installando il modulo di inizializzazione dell’applicazione per iis7.5 da qui

nel passaggio due, è necessario impostare preloadEnabled = true per il sito Web, questa opzione è l’integrazione di inizializzazione dell’applicazione alle impostazioni del sito.

Per ulteriori informazioni e come è ansible impostare queste opzioni, fare riferimento a questo post sul blog: http://blogs.iis.net/wadeh/application-initialization-part-2

dopo il secondo passaggio, il mio sito web viene caricato in soli 1-3 secondi .

Oltre a ciò che Jay ha detto … dovresti considerare l’utilizzo della memoria del tuo pool di app. Ciò è particolarmente vero per gli ambienti di hosting condiviso, in cui il provider ricicla in genere un pool di app una volta raggiunto un limite di memoria (anziché in base al tempo). Ciò causerà nuovamente il “riavvio” del sito, causando un problema di caricamento iniziale.

Sembra che le immagini che ruotano siano un po ‘grandi. Nel mio browser questa parte carica l’ultima. Tutto il resto della pagina si carica abbastanza velocemente. Potresti pensare a ridimensionare queste immagini. Inoltre, i file JavaScript di grandi dimensioni possono causare un rallentamento durante il caricamento iniziale.

Ci sono alcuni passaggi da implementare:

  1. Client Side Cache
  2. Bundling e Minification
  3. Server Side Cache
  4. Configurazione dell’avvio automatico con IIS Manager