2009-05-14 16 views
5

Ho iniziato a lavorare in una nuova società e il progetto principale su cui lavoro (un progetto di applicazione Web ASP.NET 3.5 richiede un tempo eccessivamente lungo per il caricamento iniziale (Circa 1,5 minuti)Il progetto di applicazione Web ASP.NET 3.5 impiega troppo tempo per caricare inizialmente

Sono consapevole che questa è generalmente la natura dei progetti di app Web, ma il mio problema è che sembra troppo lungo.

Ive ha provato diverse cose per cercare di individuare che cosa potrebbe causare questo ritardo compreso Sostituzione del web.config con uno nuovo creato da un nuovo progetto cancellati tutto dalla mia app_start nel mio web.config cancellato tutte le DLL weppart dalla mia cartella bin (che mi lascia con 19 dll nella mia directory bin di cui 6 dalla libreria aziendale MS)

e ancora ci vuole molto tempo per caricare.

mi chiedevo se qualcuno avesse qualche indicazioni su come posso fare per trovare che cosa provoca un tale tempo di caricamento enorme o di qualsiasi strumento che mi avrebbe aiutato a vedere ciò che la mia app sta facendo quando comincia

grazie -Kris

+0

Hai passato il codice? Forse sta inizializzando un database o qualcosa del genere. –

+2

Il linguaggio qui è un po 'ambiguo. Quando dici Progetto di applicazione Web intendi il caricamento del progetto in Visual Studio o ti riferisci al tempo di avvio dell'applicazione in IIS al primo colpo? –

+0

Ciao Rex, mi riferisco al tempo di avvio dell'applicazione in IIS sul colpo iniziale (o in questo caso il server web integrato VS) – Lightweight

risposta

2

Prova a warm-up script.

JetBrains DotTrace è un eccellente profiler ASP.NET.

+1

Grazie Chris, ma il mio problema è con il lavoro sul progetto, ovvero sviluppare codice> compilare> osservare le modifiche - non è possibile pianificare un riscaldamento ogni 5 minuti – Lightweight

+1

+1 per la raccomandazione di DotTrace - allegare al sito e vedere cosa sta prendendo il tempo di caricare. Guarda anche l'utilizzo della memoria e l'utilizzo dei processori: w3wp sta prendendo tutte le risorse o qualcos'altro? –

+0

Ciao Chris, devo essere cieco, non ho visto la seconda riga che citava DotTrace, grazie – Lightweight

0

Quanti progetti ci sono? Se si hanno cumuli di assembly e DLL nella directory bin, ciò può rallentare considerevolmente i tempi di caricamento (anche se sono piuttosto piccoli). Questo è il meglio che posso suggerire.

+0

Ci sono altri 8 progetti che non mi sembrano così male. ci sono un sacco di web part DLL, ecco perché ho provato a eliminarli tutti e testando il tempo di caricamento, ma ancora nessuna gioia :( – Lightweight

0

Provare a utilizzare SQL Profiler e guardare l'attività del database associata durante l'avvio.

Le probabilità sono, c'è un carico di query che colpiscono il database nella vista della prima pagina per inizializzare le varie cache.

In questo caso, è possibile concentrare gli sforzi sull'ottimizzazione delle query che causano il maggior numero di blocchi.

3

C'è un altro trucco in .NET 2.0 in poi. Se nella raccolta sono presenti degli assembly firmati, CLR tenta di connettersi a un URL di VeriSign e recupera un elenco di revoche dei certificati per verificare se sono validi.

Questo potrebbe consumare anche parte del tempo di avvio. Se pensi che questo potrebbe contribuire al vostro problema, allora si può dare un'occhiata a quanto segue per articoli MS:

http://digital.ni.com/public.nsf/allkb/18E25101F0839C6286256F960061B282 
http://support.microsoft.com/kb/936707 

per affrontare questo su una base per-applicazione è possibile aggiungere le seguenti impostazioni nella sezione di configurazione nel tuo app.config/web.config.

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <runtime> 
     <generatePublisherEvidence enabled="false" /> 
    </runtime> 
</configuration> 

Naturalmente, se si aggiunge questa impostazione, le DLL firmati non saranno verificati per la loro validità più!

+0

Se questo è principalmente un problema in fase di sviluppo, è possibile disattivarlo durante lo sviluppo, e averlo attivato nell'app live. – awe

0

ANTS profiler di RedGate potrebbe darti qualche suggerimento su cosa potrebbe rallentarti.

Impostare un punto di interruzione su Page_Load in Default.aspx.cs e iniziare.

Controllare il file Global.asax per vedere se qualcosa è stato caricato di cui non si è a conoscenza.

Gli altri progetti vengono caricati rapidamente? Avete altri programmi in esecuzione che potrebbero rallentare il vostro computer? Come accennato, le app .NET impiegano più tempo sul caricamento iniziale ... hai molti riferimenti (al di fuori di librerie, dll ... ecc ...)

Se pubblichi su un server di gestione temporanea o di sviluppo , si carica rapidamente?

Problemi correlati