2013-11-23 24 views
19

Sto scrivendo un'applicazione API Web ASP.NET ospitata su IIS7 (nessuna configurazione speciale).La prima richiesta di sessione dell'API Web è molto lenta

Il mio problema è che per ogni prima richiesta (su una nuova macchina/nuovo browser/dopo un po '...) c'è un lungo ritardo - anche sulle richieste che restituiscono costanti!

Ho letto di script di "riscaldamento", ma non è il problema qui. Sembra che il server web stia cercando di creare una sessione e ci vuole molto tempo. Eventuali suggerimenti?

EDIT

penso che il ritardo è causato dalla creazione lavoratore-processo per ogni nuova sessione. Ora la domanda è: perché è così lento, e perché il server Web non riutilizza i processi dei lavoratori viventi per servire le richieste?

Ho configurato il pool di applicazioni per limitare i processi di lavoro a 5 senza timeout (impostato su 0). Ciò ha causato il rallentamento delle prime cinque sessioni sulle prime richieste (con cui posso convivere) e ora i processi di lavoro sono vivi. Ma sorprendentemente, di tanto in tanto, la richiesta è di nuovo lenta!

+0

Cosa succede esattamente? Questa prima richiesta è così lenta dopo un po 'di tempo, dalla nuova finestra del browser, dalla nuova macchina, con tutte quelle condizioni o con nessuna di esse? –

+0

uno di loro. sul mio PC non succede quindi immagino che sia un problema di configurazione di IIS – Niro

+0

ogni giorno in CRM e SharePoint avvertiamo molto ritardi nell'avvio di applicazioni web è utile per i siti di SharePoint ??? –

risposta

13

Se si utilizza Windows Server 2008 R2 è possibile configure the Auto-Start feature nel pool di applicazioni. Inoltre, nelle proprietà del pool di applicazioni, è necessario disabilitarlo per essere riciclato a intervalli regolari. Tenete presente che mentre ciò limiterà la lentezza, il pool di applicazioni potrebbe ancora essere riciclato da IIS. Con la funzione Auto-Start verrà caricato automaticamente in memoria, ma il codice nel tuo Application_Start verrà eseguito alla successiva richiesta. Quindi potresti ancora osservare una certa lentezza.

+0

Grazie. È molto meglio ora. Ho ancora dei problemi di prestazioni dopo aver mancato l'accesso al servizio per un po ', ma su un'operazione statica si torna sempre veloce (altri implicano EF). – Niro

+0

Qualsiasi soluzione per il caso in cui IIS 6.0 è ancora in uso? :(AFAIK questa funzione è disponibile solo in IIS versione 7.5 o successiva .. –

+0

@TomasWalek, no, temo che non ci sia.Questo è stato uno dei motivi principali per cui ho aggiornato. –

0

Un'altra causa può essere https. Il nostro sito può essere eseguito con e senza https. Il ritardo alla prima pagina (da 5 a 15 secondi) si verifica solo con l'utilizzo di https. Questo post spiega il problema con https e la correzione:

https issue by the MCS team

Problemi correlati