Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2010
    Messaggi
    5

    ASP.NET MVC 2 - problema gravissimo gestione variabili session

    ho un problema gravissimo riguardo la gestione delle variabili session o comunque dell'oggetto HttpContext.
    Premetto che ho windows web server 2008.
    Attualmente nel controller valorizzo e richiamo una variabile session in questo modo:

    in una action ho ad esempio:

    System.Web.HttpContext.Current.Session["name"] = id_userlogged;

    (la variabile "id_userlogged" è valorizzata con il codice utente loggato.)

    in un'altra action chiamata "ctrl_login" ad esempio ho:

    if (System.Web.HttpContext.Current.Session["name"] == "")
    {
    ....
    }

    Ad esempio il pc1 è l'utente "A":

    System.Web.HttpContext.Current.Session["name"] = "100";

    e il pc2 è l'utente "B":

    System.Web.HttpContext.Current.Session["name"] = "101";


    In richieste contemporanee capita che si sovrappongono le variabili session, cioè il pc1 e pc2 ha:
    System.Web.HttpContext.Current.Session["name"] = "101"

    oppure pc1 e pc2 hanno:

    System.Web.HttpContext.Current.Session["name"] = "100"

    spero di essere stato chiaro con l'esposizione del problema.

    Perchè accade questo?
    A qualcuno è già capitato e può aiutarmi?

    Grazie anticipatamente
    teclann

  2. #2
    Moderatore di Windows e software L'avatar di URANIO
    Registrato dal
    Dec 1999
    residenza
    Casalpusterlengo (LO)
    Messaggi
    1,290
    Mi sembra stano, non ci sono problemi di concorrenza con le sessioni.
    Non è che è solo un problema di cache del broowser?
    Tipo che provi dallo stesso computer e ti ritrovi il vecchio valoro perchè salvato?

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2010
    Messaggi
    5
    eseguo da browser di pc diversi.

    entro da pc1 con username "ut1" (id_userlogged = 100)

    poi entro dal pc2 con "ut2" (id_userlogged = 101)

    fin qui tutto ok, le variabili di sessione sono valorizzate correttamente.

    Se premo continuamente F5 da pc1 e pc2, ottengo il brutto risultato che sia pc1 (ut1) che pc2 (ut2) hanno la variabile session con lo stesso valore:

    System.Web.HttpContext.Current.Session ['name'] con valore "100"

    oppure

    System.Web.HttpContext.Current.Session ['name'] con valore "101"

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2010
    Messaggi
    5
    ho avuto lo stesso problema riguardo la concorrenza con System.Web.HttpContext.Current.Request.QueryString[]...

    ma ho risolto non usando più le querystring, ora utilizzo i parametri di mvc con "/"

    purtroppo cambiare le session significa cambiare tanto codice, per questo che sono a chiedervi un aiuto, grazie

  5. #5
    Moderatore di Windows e software L'avatar di URANIO
    Registrato dal
    Dec 1999
    residenza
    Casalpusterlengo (LO)
    Messaggi
    1,290
    O sbagli qualcosa nel codice o hai un problema su IIS, dato che è impossibile che abbiano problemi di concorrenza, altrimenti nessun sito in ASP.NET potrebbe fuinzionare.

  6. #6
    Utente di HTML.it
    Registrato dal
    Aug 2010
    Messaggi
    5
    non credo sia un problema di codice, da lo stesso problema anche se provo a stampare

    HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"].ToString()


    Ho notato una cosa, se nell'application pool di IIS incremento ad esempio a 5 il maximum worker processes, la variabile session si perde tra una richiesta e l'altra.

    non vorrei sia sto windows web server 2008 che mi sta creando questi problemi assurdi

  7. #7
    Utente di HTML.it
    Registrato dal
    Aug 2010
    Messaggi
    5
    ho risolto.

    era l'istruzione nella view

    <%@ OutputCache Duration="1" VaryByParam="none" %>

    togliendola è andato tutto a posto

    grazie ugualmente

    ciao a tutti

  8. #8
    Moderatore di Windows e software L'avatar di URANIO
    Registrato dal
    Dec 1999
    residenza
    Casalpusterlengo (LO)
    Messaggi
    1,290
    Visto, era la cache (lato server).

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 © 2026 vBulletin Solutions, Inc. All rights reserved.