Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
ASP.NET 2.0 / 3.5 / 4.0
Session persa
mercoledì 28 gennaio 2009 - 11.03
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
patrizia84
Profilo
| Junior Member
164
messaggi | Data Invio:
mer 28 gen 2009 - 11:03
Ciao a tutti.
Nella mia applicazione ho un gridview dove visualizzo dei file.
Memorizzo i file presenti nel gridview in una sessione.
Quando vado a cancellare il file grazie al comando delete del grid perdo la sessione.
In che modo posso non perderla?
Ho pensato di memorizzare i file in un attributo privato senza utilizzare la sessione.
Qualcuno a qualche consiglio?
Grazie a tutti.
rossimarko
Profilo
| Guru
1.173
messaggi | Data Invio:
mer 28 gen 2009 - 11:15
Ciao,
puoi farci vedere il codice con cui accedi alla sessione?
PS: se usi un attributo privato ad post perderai i dati quindi non penso sia la soluzione
-----------------------------------------
Rossi Marco
http://blogs.dotnethell.it/rossimarko
patrizia84
Profilo
| Junior Member
164
messaggi | Data Invio:
mer 28 gen 2009 - 11:28
Ciao..
Scusate :per qualcuno a qualche consiglio? (a senza h
).
Se inizializzo l'attributo privato solo se non è un post della pagina e dopo l'aggiornamento dell'attributo lo faccio nella gestione degli eventi del grid,perchè perdo il valore dell'attributo ?
Scusate i miei dubbi!!!
Il codice dovrebbe essere giusto perchè l'errore della sessione mi appare solo quando faccio più di una cancellazione del file.
Comunque in questo accedo alla sessione:
DataSet DSDoc = (DataSet)Session["dataSetRisorsa"];
rossimarko
Profilo
| Guru
1.173
messaggi | Data Invio:
mer 28 gen 2009 - 11:45
L'attributo lo perdi perchè le variabili che dichiari all'interno della classe vengono perse ad ogni postback. Considera che ogni post dalla pagina al server consiste in una nuova istanza della classe e quindi tutti i valori vengono azzerati.
La session, il viewstate e gli altri oggetti servono appunto per evitare di perdere i dati tra un post e l'altro (
http://msdn.microsoft.com/en-us/library/75x4ha6s.aspx
)
Tornando alla session, che errore ti restituisce quando tenti di accederci? Ti torna un oggetto null?
Ti consiglio di fare delle verifiche:
- Quand'è che popoli l'oggetto della session?
- Hai già verificato con dei breakpoint che il flusso sia corretto (Inserimento in session al primo caricamento e poi caricamento dei dati durante i vari post back degli aventi) ?
- Ogni volta che compili fai ripartire la pagina dall'inizio? (la compilazione spesso comporta la perdita di tutti i dati perchè il processo viene riavviato)
-----------------------------------------
Rossi Marco
http://blogs.dotnethell.it/rossimarko
patrizia84
Profilo
| Junior Member
164
messaggi | Data Invio:
mer 28 gen 2009 - 11:49
Grazie per i consigli ma ho già provato con dei breakpoint e il flusso è corretto,la sessione viene creata ed aggiornata nel modo giusto.
L'errore che mi restituisce è che la sessione è vuota.
Può darsi che si azzeri perchè vado a cancellare un file che si trova in una cartella nella stessa directory dell'applicazione asp.net.?
rossimarko
Profilo
| Guru
1.173
messaggi | Data Invio:
mer 28 gen 2009 - 11:58
Non dovrebbe.. Che tipo di file cancelli?
Prova ad intercettare nel global.asax l'evento SessionEnd per vedere se effettivamente viene buttata giù.
Hai altre variabili nella sessione? Anche quelle perdono i valori?
-----------------------------------------
Rossi Marco
http://blogs.dotnethell.it/rossimarko
patrizia84
Profilo
| Junior Member
164
messaggi | Data Invio:
mer 28 gen 2009 - 12:08
I file sono immagini quindi .gif, .png, .jpeg, .jpg e non ho altre variabili nella sessione.
Ho intercettato l'evento Session_End nel global.asax quindi perdo la sessione...
.
Provo con viewstate.. può essere una soluzione?
rossimarko
Profilo
| Guru
1.173
messaggi | Data Invio:
mer 28 gen 2009 - 12:15
Se metti nel viewstate devi considerare che ad ogni postback i dati vengono passati avanti e indietro quindi occupi della banda. Se non sono molti si può fare ma se sono un po' non ti conviene.
Più che altro bisogna capire perchè scade così velocemente.. Hai verificato che non venga chiamato session.abandon o il logout da qualche parte per sbaglio? Il timeout è di 20 minuti?
-----------------------------------------
Rossi Marco
http://blogs.dotnethell.it/rossimarko
patrizia84
Profilo
| Junior Member
164
messaggi | Data Invio:
mer 28 gen 2009 - 12:19
Si ho controllato non c è ne Session.Abandon e nè fa il logout.
Forse provo con il viewstate tanto sono poche le informazioni che devo memorizzare.non cedo altre alternative...
rossimarko
Profilo
| Guru
1.173
messaggi | Data Invio:
mer 28 gen 2009 - 12:26
Per adesso puoi provare, il problema è che se in futuro dovrai memorizzare altre informazioni avrai lo stesso problema.
Giusto per curiosità prova a commentare la parte che cancella i file e lascia solo la gestione del postback della griglia, tanto per capire se può essere quello.
-----------------------------------------
Rossi Marco
http://blogs.dotnethell.it/rossimarko
patrizia84
Profilo
| Junior Member
164
messaggi | Data Invio:
mer 28 gen 2009 - 12:33
Hai ragione!!
prima o poi questo problema si ripresenta.
Ho provato a commentare e la cancellazione del file e la sessione non la perde...
rossimarko
Profilo
| Guru
1.173
messaggi | Data Invio:
mer 28 gen 2009 - 12:35
I file sono nella root del sito?
Hai già provato a metterli in una sottocartella?
-----------------------------------------
Rossi Marco
http://blogs.dotnethell.it/rossimarko
patrizia84
Profilo
| Junior Member
164
messaggi | Data Invio:
mer 28 gen 2009 - 13:03
Si sono nella root del sito..Adesso provo a spostarli...
Evviva funziona...ho spostato i file in una cartella fuori dalla root del sito..
Grazie per l'aiuto!!!
Torna su
Stanze Forum
Elenco Threads
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 !