Domanda

Che cosa posso fare per garantire che quando un riavvio dell'applicazione / app pool viene attivato, che l'applicazione ritorna in linea il più velocemente possibile?

Meglio ancora, c'è un modo per evitare che il riavvio dell'applicazione quando si verificano i soliti trigger? Come modificare il web.config, global.asax o machine.config?

È stato utile?

Soluzione

Ci sarà una funzione di "auto-start" in ASP.NET 4.0 ( Scott Guthrie parla ), ma che non vi aiuterà ora.

Si prega di essere sicuri che il pool di applicazioni tuo sito / applicazione è in esecuzione in, non andrà in "sonno" automaticamente. Un default AppPool è impostato per spegnersi dopo 20 minuti inactivty. Se non ricordo male questo non rende il sito ricostruire, ma rende la prima richiesta in particolare più lento.

Piccola nota, un progetto di sito web può anche essere costruire, così il vostro App_Code sarà vuoto e la vostra cartella bin conterrà una serie di DLL di (basta usare costruire> costruire sito web). Questo sicuramente volontà fa la prima richiesta al tuo sito più veloce. Non credo che un sito web applicazione entreranno in gioco più veloce di un precompilato progetto di sito web , ma è solo più facile da gestire.

Altri suggerimenti

Sì, lo spostamento di applicazioni web potrà accelerare il processo di riavvio. Un'altra cosa da fare sarebbe quella di rendere il vostro global.asax più pulito assolutamente possibile.

Anche con applicazioni web, il sito farà un riavvio se uno qualsiasi di questi file di configurazione vengono modificati o se gli assembly nella directory bin cambiamento. Non si può fermare questo.

tempi di riavvio dovrebbe essere piuttosto veloce a circa 2 o 3 secondi. Tuttavia, ho visto alcuni file global.asax piuttosto complicato che ha istituito alcuni dati a livello di dominio che ha avuto fino a 20 secondi. Naturalmente, erano disposti a pagare quel prezzo perché ha ridotto alcune delle loro normali tempi di caricamento delle pagine da 3 secondi a 0,1 secondi.

Principalmente, usiamo progetti di siti web, quindi immagino che passare a progetti di applicazioni web sarebbe accelerare l'operazione dal momento che tutti i file di codice sono pre-compilati in una DLL.

Quando si utilizza progetti di siti web , penserei che lo spostamento di file App_Code in una libreria di classi esterna sarebbe anche accelerare le cose dato che il codice sarebbe stato pre-compilato.

Per progetti di applicazioni Web, è possibile utilizzare un progetto di distribuzione Web ( VS2010 link per il download ) di precompilare il sito in una DLL simile ad un progetto di sito web fa. Vedere la articolo ScottGu su come utilizzare WDPs .

Ho un problema simile in che sto correndo un sito molto elevato traffico che ottiene un buon 300+ richieste / secondo. Un riavvio vuole un buon 90 secondi almeno per esso.

Quando faccio un cambiamento che riavvia il server, sembra che le bancarelle di riavvio fino a quando tutte le vecchie richieste (alcuni dei quali molto lungo in esecuzione) vicino. Posso fare il riavvio accadere molto più veloce uccidendo l'istanza precedente w3wp.exe manualmente.

C'è un modo per forzare IIS per chiudere tutte le connessioni subito e fare un riavvio duro? Alcuni impostazione in IIS o asp.net per controllare questo?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top