• User Attivo

    problemi su session

    ciao a tutti ho questo problema:
    ho installato iis su windows xp successivamente ho creato un file come questo:
    account=Request.Form ("account")
    session("idaccount")=account
    Response.Redirect http://www.pinco.it/prova.asp
    a questo punto sul file prova ho scritto il seguente codice
    response.write session("idaccount")
    il problema e che non mi stampa il contenuto della variabile session pero' se ripeto l' operazione tutto funziona correttamente!
    cosa potrebbe essere?
    io pensavo che era la cache di iis potrebbe essere?
    se si come faccio ad annnulare la cache di iis?


  • User Attivo

    ho notato una cosa che se io elimino l' istruzione Response.Redirect http://www.pinco.it/prova.asp la variabile session viene riempita correttamente senza dover eseguire due volte la stessa pagina! premetto io uso anche la dll isapi rewrite!
    nessuno di voi mi sa dire perchè devo eseguire 2 volte la pagina se utilizzo la redirect?
    grazie


  • User Attivo

    esiste un altra istruzione che faccia la stessa cosa di response.redirect?


  • User

    @wwwfitshopit said:

    ho notato una cosa che se io elimino l' istruzione Response.Redirect http://www.pinco.it/prova.asp la variabile session viene riempita correttamente senza dover eseguire due volte la stessa pagina! premetto io uso anche la dll isapi rewrite!
    nessuno di voi mi sa dire perchè devo eseguire 2 volte la pagina se utilizzo la redirect?
    grazie

    Non ho ben capito cosa devi fare, ma provo a darti un'informazione generale sul redirect, che forse potrà tornarti utile:

    quando usi Response.Redirect(<url>); viene interrotta l'esecuzione della pagina corrente per passare a eseguire l'eventuale codice della pagina destinataria del redirect. Quindi tutto il codice che c'è dopo il comando redirect non ha effetto sulla pagina che ha eseguito il redirect.
    Quindi se "response.write session("idaccount")" è dentro la pagina che ha fatto il redirect, e dopo il redirect, non viene eseguita.

    In realtà puoi fare anche un redirect Response.Redirect(<url>,<endresponse>); dove <endresponse> vale "true" or "false" e indica se prima di fare il redirect si deve eseguire il restante codice della pagina che ha effettuato il redirect. Prova a eseguire Response.Redirect(<url>,false); e guarda se ti cambia qualcosa.

    Quindi ti consiglio di verificare, magari anche usando il debug di visual studio (o lo strumento di debug dell'editor che usi), che il response.redirect non impedisce l'esecuzione di parte del codice.

    In alternativa, non avendo esattamente cosa devi fare, posso consigliarti di guardare anche il metodo Server.Transfer
    http://msdn2.microsoft.com/en-us/library/ms525800.aspx
    che può essere utile sopratutto se stai usando asp e non asp.net.

    Spero che ti possa essere stato utile.