Problema di timeout pagina

mercoledì 05 gennaio 2011 - 08.22

LuxSkyWalker Profilo | Junior Member

Ciao a tutti!

Sono un programmatore .NET che al momento sto lavorando ad un sito ASP.
Ho una pagina che al click su un button deve:
1)Eseguire una query di select da un db.
2)Popolare un relativo recordset.
3)Generare un file excel con i dati del recordset sul un server.
4)Visualizzare la classica finestra APRI/SALVA come popup.

La procedura funziona correttamente (e direi perfettamente, visti comunque i tempi di risposta molto ridotti) se dalla pagina chiamante avvio la ricerca con alcuni parametri.
Se invece voglio una ricerca globale, senza filtri, l'applicativo non funziona correttamente, e allora chiedo aiuto a voi.
La ricerca globale prevede 4900 records, ognuno dei quali ha circa 30 colonne.
L'excel relativo viene (dopo circa 15 minuti) generato sul filesystem ma nel frattempo la pagina visualizzata sul browser "scade" (viene il classico messaggio "IMPOSSIBILE VISUALIZZARE LA PAGINA...") e quindi non mi viene la finestra APRI / SALVA.
Dal basso della mia esperienza, credo si tratti di un problema di timeout, ma ho già giocato sui vari timeout a me conosciuti senza ottenere cambiamenti.

Qualcuno può aiutarmi?

Allego il codice della pagina che genera l'excel!
Grazie!

<!--METADATA TYPE="typelib" UUID="00000205-0000-0010-8000-00AA006D2EA4" NAME="ADODB Type Library" --> <!-- #include file="../../connessione.asp" --> <% Session.Timeout=120 ' Durata della sessione -> 2 ore!!! Server.ScriptTimeout=5400 ' Tempo di attesa per il completamento dello script -> 1.5 ore!!! Response.Expires=now()-2 response.Buffer = true response.AddHeader "pragma", "no-cache" response.AddHeader "cache-control", "private" response.CacheControl = "no-cache" strNome = "ElencoCollaboratori.xls" ' stream generico, IE chiede di salvare Response.ContentType = "octet/stream" ' imposto il nome del file Response.AddHeader "Content-Disposition", "attachment;filename=" & StrNome ' Nome temporaneo del file Excel temp_excel_file = "excel_collaboratori_" & time() ' Gestione query sSql= mia query ' Bindo il recordset set rs = server.createObject("ADODB.Recordset") rs.open sSql, connessione, adOpenStatic,adLockReadOnly record = rs.RecordCount rs.MoveFirst() ' Generazione file excel tabella_collaboratori = "" path_modello = Server.mappath("/collaboratori/download/modello/modello_excel.txt") For i = 0 to record-1 tabella_collaboratori = tabella_collaboratori & "<tr>" tabella_collaboratori = tabella_collaboratori & "<td>"& rs.fields("miaQuery_campo1") &"</td>" tabella_collaboratori = tabella_collaboratori & "<td>"& rs.fields("miaQuery_campo2") &"</td>" tabella_collaboratori = tabella_collaboratori & "<td>"& rs.fields("miaQuery_campo3") &"</td>" tabella_collaboratori = tabella_collaboratori & "<td>"& rs.fields("miaQuery_campo4") &"</td>" ... ... tabella_collaboratori = tabella_collaboratori & "</tr>" if (i <> record-1) then rs.MoveNext() end if Next end if rs.close set rs = nothing connessione.close set connessione = nothing ' Path path_temp = Server.mappath("/collaboratori/download/temp/"& temp_excel_file &".xls") Set fs = CreateObject("Scripting.FileSystemObject") Set a = fs.OpenTextFile(path_modello) file_letto = a.readall a.Close set a = nothing 'Scrive sul file di testo il nuovo valore Set a = fs.CreateTextFile(path_temp, True) set fs = nothing file_letto = replace(file_letto, "[collaboratori]", tabella_collaboratori) a.write(file_letto) a.Close set a = nothing response.Flush() response.Clear() xls = temp_excel_file path_temp = server.mappath("/AnagraficaSubage/collaboratori/download/temp/"& xls &".xls") Set objStream = Server.CreateObject("ADODB.Stream") objStream.Type = adTypeBinary objStream.Open objStream.LoadFromFile path_temp Response.BinaryWrite objStream.Read objStream.Close Set objStream = Nothing response.Flush() response.end() %>
LuxSkyWalker
Junior Developer .NET
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5