2009-09-14 13 views
11

Ho un progetto in asp.net mvc, il mio hosting utilizza IIS6 e la prima richiesta dopo l'inattività del sit del sito Web è molto lenta. Ho guardato, http://forums.asp.net/t/1418959.aspx e ho chiesto all'hosting per queste impostazioni. Dicono che le impostazioni effettive sono:La prima richiesta è molto lenta dopo l'inattività del sito Web con Asp.net mvc IIS6

"Il pool è impostato con Idle Timeout disabilitato, Rapid-fail abilitato e con un singolo processo di lavoro."

Ma ancora lento alla prima richiesta. Hai altri indizi?

Grazie in anticipo,

Alfredo

+0

Sul server, provare questo: Esegui -> inetmgr -> espandere MACCHINA (computer locale) -> selezionare Pool di applicazioni -> fare clic con il pulsante destro del mouse sul pool di applicazioni -> Proprietà -> scheda Prestazioni -> Deselezionare "Arresta il processo di lavoro dopo essere stato inattivo per: (tempo in minuti) ". (Inoltre, il tempo di riciclo può essere regolato nella scheda Riciclaggio di questo messaggio.) – Patrick

risposta

2

Solo una supposizione, ma forse si sta caching alcuni dati, che devono essere aggiornati dopo che il sito è rimasto inattivo per un certo tempo?

In caso contrario, suppongo che il processo di lavoro sia stato chiuso per qualche motivo (potrebbe essere per qualche altra ragione che il timeout di inattività in IIS). Se è necessario verificare se questo potrebbe essere il caso, è possibile aggiungere del codice all'evento Application_Start che registra l'evento di avvio in un file o qualsiasi altra registrazione in atto. Dopo un po 'di tempo, è possibile esaminare i registri e vedere quanti eventi Application_Start si sono verificati.

+0

No, non sto prendendo nulla. Ho già chiesto all'hosting di registrare gli eventi del processo worker, vedere: http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/87892589-4eda-4003-b4ac-3879eac4bf48.mspx?mfr=true ma ci proverò anche io. Grazie! –

5

Questo è naturale.

IIS è spesso configurato per chiudere il sito Web se è una certa età o se non c'è stata una richiesta in un momento. Il tuo sito web deve essere caricato (e possibilmente compilato) quando arriva la prima richiesta dopo che asp.net è stato chiuso da IIS.

La soluzione comune è precompile your website prima di pubblicarla sul server.

+0

Sono d'accordo con te – omoto

+2

La precompilatura non ha importanza con ASP.NET MVC, è un progetto di tipo di applicazione web sotto il cofano. –

+0

Wyatt è giusto http://stackoverflow.com/questions/336205/can-i-precompile-my-asp-net-mvc-application –

8

Probabilmente sei una vittima di worker process recycling. Chiedi al tuo host con quale frequenza i processi di lavoro sono recyled.

Quando un processo di lavoro viene riciclato, deve ricompilare e riavviare l'intera applicazione Web, e questo è ciò che causa il rallentamento.

+0

Sì, quello è stato il mio primo tentativo, così come la soluzione proposta nel link che ho inserito, ma l'hosting ha già cambiato le impostazioni per quello e ancora non funziona. Ma grazie! –

+2

Quanto ci vuole prima che si verifichi il rallentamento? Inoltre, il riciclo dei processi e il timeout di inattività non sono la stessa cosa (forse non l'avrei chiarito) - sei sicuro che il tuo host abbia cambiato quello giusto? –

+0

Ok! Ti ho capito male, il mio ospite dice che il processo operaio ricicla ogni 24 ore.Ora sta funzionando bene precompilare il sito Web, ma imposterò un ambiente di test e tenterò di registrare alcuni eventi per sapere, quanto tempo ci vuole, voglio trovare una soluzione senza precompilare. Ti farò sapere. Grazie ancora! –

Problemi correlati