Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 24
  1. #1

    Sessione che non viene recuperata dalla seconda pagina

    Come è possibile che una semplicissima session che ho sempre usato in ASP, qui mi da problemi?
    Ho una pagina pass.aspx dove verifico l'inserimento dei dati per l'accesso:

    codice:
    If MyDR.HasRows = True Then
    
                    Do While MyDR.Read
                        Session("ID") = MyDR.Item("ID_check")
                        Session.Timeout = 600
    
                    Loop
    
                    Response.Redirect("panel.aspx")
    
                Else
                    lblRisultato.Text = "I dati inseriti non sono corretti."
                End If
    E poi nella pagina panel.aspx tento di scrivere il valore di Session("ID") in una label:

    codice:
        Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
    
            lblerrore.Text = Session("ID")
    
        End Sub
    Dico "tento" perchè non mi scrive niente!!!!
    Come è possibile?
    Grazie

  2. #2
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    Puo' dipendere da tante cose, ma come mai metti ripetutamente nella variabile di sessione l'id in un ciclo ?

    Cmq, prova con Viewstate("id") = ...

    La sessione in asp.net è poco affidabile.

  3. #3
    Perche' usi un datareader per recuperare un singolo valore? Ti conviene usare un piu' semplice command e in particolare la funzione tuocommand.executescalar che restituisce il primo valore della select eseguita.
    Detto questo, per vedere cosa viene scritto nella session puoi mettere un breckpoint e vedere a debug se e cosa viene tirato fuori dal datareader.
    Saluti a tutti
    Riccardo

  4. #4
    Originariamente inviato da djciko
    La sessione in asp.net è poco affidabile.
    :master: che cosa avrebbe di poco affidabile?
    Saluti a tutti
    Riccardo

  5. #5
    Originariamente inviato da riccardone
    Perche' usi un datareader per recuperare un singolo valore? Ti conviene usare un piu' semplice command e in particolare la funzione tuocommand.executescalar che restituisce il primo valore della select eseguita.
    Detto questo, per vedere cosa viene scritto nella session puoi mettere un breckpoint e vedere a debug se e cosa viene tirato fuori dal datareader.
    giustamente il ciclo è inutile... la condizione gliela dò già nella select sql...
    cmq ho provato a stampare a video il risultato della sessione dopo l'autenticazione, ed è corretto.

    codice:
    Do While MyDR.Read
                        Session("ID") = MyDR.Item("ID_check")
                        Session.Timeout = 600
    
                    Loop
    
                    lblRisultato.Text = "Riconoscimento effettuato con successo! 
     " & Session("ID")
    Mi stampa l'id relativo all'utente che ha inserito i dati.
    E' nel passaggio da una pagina all'altra che perde il valore...
    Come mai?

    Grazie

  6. #6
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Originariamente inviato da riccardone
    :master: che cosa avrebbe di poco affidabile?
    Niente, a parte il fatto che ogni tanto si perde

    Pietro

  7. #7
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    Originariamente inviato da riccardone
    :master: che cosa avrebbe di poco affidabile?

    ah nulla....e' solo che quando il worker process che gestisce il tutto si riavvia (e si riavvia davvero, da quanto ho capito perche' necessita di un tuning applicativo piuttosto fine) si perdono gli oggetti tipo application e session...

  8. #8
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    cosa è un tunig applicativo
    Pietro

  9. #9
    Originariamente inviato da djciko
    ah nulla....e' solo che quando il worker process che gestisce il tutto si riavvia (e si riavvia davvero, da quanto ho capito perche' necessita di un tunig applicativo piuttosto fine) si perdono gli oggetti tipo application e session...
    Certo che si perdono. Ma il worker process non dovrebbe riavviarsi quando gli pare a lui (semmai quando pare a te, facendo un iisreset o nel caso del computer di sviluppo quando con vs2003 ricompili e riavvii l'applicativo). Se si riavviasse, avresti probabilmente un qualche problema la cui traccia dovresti vederla nel registro degli eventi di windows. Per il resto, se non sbaglio dovrebbe esserci un worker process per ogni application pool (se parliamo di iis6) altrimenti si potrebbe rischiare di perdere i valori di sessione.
    Saluti a tutti
    Riccardo

  10. #10
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    Intendevo la modifica della sezione processModel del file Machine.config sulle macchine server dove viene distribuita l'applicazione una volta terminato lo sviluppo...

    codice:
    <processModel 
    enable="true" 
    timeout="Infinite"  
    idleTimeout="Infinite" 
    shutdownTimeout="0:00:05"  
    requestLimit="Infinite" 
    requestQueueLimit="5000" 
    restartQueueLimit="10"  
    memoryLimit="60" 
    webGarden="false" 
    cpuMask="0xffffffff" 
    userName="machine" 
    password="AutoGenerate" 
    logLevel="Errors" 
    clientConnectedCheck="0:00:05" 
    comAuthenticationLevel="Connect" 
    comImpersonationLevel="Impersonate" 
    responseDeadlockInterval="00:03:00"  
    maxWorkerThreads="20" 
    maxIoThreads="20" />
    i parametri evidenziati gestiscono il riciclaggio del processo (aspnet_wp.exe) ... che a quanto pare, (fonte da diversi testi), è la capacità delle applicazioni asp.net di "autocorreggersi" tramite il riavvio del sopracitato....(che purtroppo sembra vivere di vita e decisioni proprie)

    Se ho detto sciocchezze correggetemi

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.