25 messaggi dal 27 luglio 2012
Ciao a tutti,
il mio problema è questo:
ho sviluppato un'applicazione asp.net(vb) su Windows 7 con VS2010 Pro (debuggata con server di sviluppo asp). Ora non riesco a farne la manutenzione su Windows8 VS2013Pro con IIS Express. Subito pare funzionare correttamente, ma dopo poco (su qualsiasi pagina) si blocca con il messaggio "localhost non risponde a causa dell'esecuzione prolungata di uno script". Io faccio uso dei controlli standard e qualche AJAX, ma nulla di complesso. La stessa applicazione in produzione su IIS funziona correttamente, mentre nell'ambiente di sviluppo si blocca. Per questo motivo immagino sia colpa di IIS Express. Sapete se devo forse modificare il web.config? Oppure ci sono altri accorgimenti? Ho cercato in rete, ma senza successo. Grazie infinite...
11.886 messaggi dal 09 febbraio 2002
Contributi
ciao,

domleg ha scritto:

localhost non risponde a causa dell'esecuzione prolungata di uno script

Questo è un problema lato client. Ci dev'essere un pezzo di codice javascript che entra in un loop di durata molto lunga (o infinita). Dobbiamo innanzitutto esaminare questo problema e poi ricercare le cause sul perché si stia verificando solo in locale.
  • Usa gli strumenti di sviluppo del tuo browser (tasto F12) per verificare che tutti gli script vengano caricati correttamente. Dal pannello "Rete" o "Network", vai ad ispezionare ogni richiesta HTTP per capire cosa sta restituendo il server. Magari restituisce un errore 404 per uno degli script e l'applicazione dunque non funziona correttamente. Guarda anche la console, perché ti mostrerà eventuali errori di caricamento o esecuzione.
  • Se tutti gli script sono caricati correttamente, allora usa il Debugger Javascript o il Profiler per identificare l'esatto blocco di codice che sta tenendo impegnato il browser.

Quando hai scoperto qualcosa, valuteremo insieme come procedere.

ciao,
Moreno
Modificato da BrightSoul il 02 febbraio 2014 11.24 -

Enjoy learning and just keep making
25 messaggi dal 27 luglio 2012
OK. Mi metto al lavoro. Grazie infinite per i suggerimenti.
25 messaggi dal 27 luglio 2012
Allora, mi pare di capire che il problema siano le dropdownlist, ma non so come risolvere. In pratica la videata contiene una decina di ddl caricate con degli sqldatasource (che pescano da sqlexpress) nella pagina aspx. Diciamo che in media hanno circa una ventina di items a testa. Pare che il caricamento di questi elementi sia eterno... Ma solo con IISExpress. Ho riprovato con Win7 + VS2010Pro e il server di sviluppo AspNet e ricontrollato anche in produzione (IIS) e non ci sono rallentamenti/blocchi. Se carico i ddl con una ventina di listitem direttamente nella pagina aspx tutto funziona. Boh. Non credo che il db sia così lento nel rispondere... Per lo meno da SSMS non lo è. Capisco che è alquanto strano, ma qualcuno ha qualche idea in merito?
11.886 messaggi dal 09 febbraio 2002
Contributi
ciao,
cerchiamo di stringere il cerchio; dobbiamo accertare se si sta trattando di un problema lato client o lato server.

domleg ha scritto:
Pare che il caricamento di questi elementi sia eterno...


Questo però non è concorde con quello che mi dicevi nel post precedente. Se continui ad ottenere l'errore "localhost non risponde a causa dell'esecuzione prolungata di uno script", allora la causa non può essere la lentezza di uno o più SqlDataSource.
Lo script a cui fa riferimento l'errore è un javascript, che va in esecuzione quando ormai le dropdownlists sono state popolate.

Dovresti aprire la scheda "Rete" degli strumenti di sviluppo (tasto F12), ricaricare la pagina, e controllare nella timeline quando impiega la pagina a caricarsi. Se è rapida, avremo la conferma che si tratta di un problema client. A quel punto dovresti usare il debugger per eseguire il codice javascript passo-passo.



Purtroppo non ti posso aiutare in altri modi se non conosco la causa del problema.

ciao,
Moreno

Enjoy learning and just keep making
25 messaggi dal 27 luglio 2012
Prima di tutto grazie per la pazienza...
1)Ho dato la colpa ai ddl perché caricandoli con pochi item direttamente dalla pagina aspx tutto funziona correttamente.
2) Di codice javascript non c'è nemmeno l'ombra. Non sono in grado di scriverlo.
3) In effetti prima non sono stato troppo preciso. Quello che succede è questo: la pagina viene caricata interamente (o almeno sembra) poi quando clicco su un ddl si apre la tendina (non sempre) e si blocca tutto. Dopo un po' esce la scritta "localhost non risponde a causa dell'esecuzione prolungata di uno script".
4) ho provato ad usare lo strumento di diagnostica (altF12) e il grafico in effetti dopo alti e bassi resta costante parallelo all'asse x sul valore 20 fino a che non interrompo l'esecuzione del progetto.
11.886 messaggi dal 09 febbraio 2002
Contributi
domleg ha scritto:

ho provato ad usare lo strumento di diagnostica (altF12) e il grafico in effetti dopo alti e bassi resta costante parallelo all'asse x sul valore 20 fino a che non interrompo l'esecuzione del progetto.

Ok, ora è sicuro che la lentezza si verifica lato client.

domleg ha scritto:

clicco su un ddl si apre la tendina (non sempre) e si blocca tutto

Adesso cerchiamo di capire come mai si blocca tutto proprio quando si apre la tendina. Per caso stai usando jQueryUI o altra libreria che modifica l'aspetto della ddl? L'"esecuzione prolungata" potrebbe dipendere appunto da una libreria come jQueryUI che cerca di disegnare una tendina con moltissimi elementi dentro.

La prossima cosa da verificare è il numero degli elementi che una di queste ddl contiene. Quindi (senza mostrare la tendina) fai tasto destro su una delle ddl e clicca "Ispeziona elemento" o "Esamina elemento" dal menu contestuale. Ti ritroverai con una visualizzazione tipo questa. Vedi quanti elementi ci sono sotto il tag <select>. Se ce ne sono più di quanti te ne aspettavi di trovare, allora vuol dire che qualche istruzione lato server non sta lavorando come dovrebbe. Magari un filtro non viene applicato e ti vengono stampati tutti i records anziché una selezione ridotta.

ciao,
Moreno

Enjoy learning and just keep making
25 messaggi dal 27 luglio 2012
Come avevi intuito tu, è un ddl con molti item la causa di tutto.
Adesso lo sostituirò con un textbox e autocomplete, ma mi chiedo perché la stessa identica condizione non genera problemi su Win7 + VS2010 + Server di Sviluppo Asp. In pratica sia con l'ambiente di sviluppo più datato, che in produzione, non riscontro problemi. Secondo te, non esiste qualche modo per farlo funzionare anche su IIS Express? Lo chiedo perché temo di avere molti altri casi simili e visto che in produzione funzionano, mi spiacerebbe dover fare un sacco di lavoro, solo per averli funzionanti nell'ambiente di sviluppo. Comunque grazie 1000. Mi hai fatto scoprire lo strumento di diagnostica che non avevo mai utilizzato.

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.