OVH Cloud OVH Cloud

Probleme avec une variable de Session

5 réponses
Avatar
tom
Bonjour,
j'utilise depuis peu les variables de Session, et j'ai 1=20
probleme...

sur la 1ere page de mon appli, je recupere le login de=20
l'utilisateur et je le stocke:
Session["login"] =3D login;

ensuite, je recupere parfois cette valeur pour connaitre=20
le login de l'utilisateur.

mais cela me renvoie souvent cette erreur (mais pas tout=20
le tps!!!):
"System.NullReferenceException: La r=E9f=E9rence d'objet n'est=20
pas d=E9finie =E0 une instance d'un objet."

quand je teste mon appli en mode debug, tout fonctionne=20
tres bien...

je suis donc un peu perdu.
d'ou cela peut il venir?

merci d'avance!

5 réponses

Avatar
Eric Guillemette
Bonjour,

Il faut savoir que les variables de session sont stockées en mémoire au
niveau du serveur. Donc s'il n'y a pas eu d'interaction entre le navigateur
et le serveur dans un certain laps de temps, la variable de session va être
détruite (ainsi que toute la session à vrai dire). Ce laps de temps peut
varier selon la configuration du site web, mais par défaut, elle est de 20
minutes.

Pour éviter le problème d'une référence à une valeure nulle, il suffit de
valider le contenu de la variable de session:

if (Session["login"] == null)
Response.Redirect("login.aspx");

MonLogin = (login)Session["login"];


"tom" wrote in message
news:6c9801c483a0$2dcbbf30$
Bonjour,
j'utilise depuis peu les variables de Session, et j'ai 1
probleme...

sur la 1ere page de mon appli, je recupere le login de
l'utilisateur et je le stocke:
Session["login"] = login;

ensuite, je recupere parfois cette valeur pour connaitre
le login de l'utilisateur.

mais cela me renvoie souvent cette erreur (mais pas tout
le tps!!!):
"System.NullReferenceException: La référence d'objet n'est
pas définie à une instance d'un objet."

quand je teste mon appli en mode debug, tout fonctionne
tres bien...

je suis donc un peu perdu.
d'ou cela peut il venir?

merci d'avance!
Avatar
ok merci.
j'avais en effet deja entendu parler de ce timeout.
par contre je trouve cela bizarre quand meme, je suis loin
d'attendre 20min. en general plutot 2min maximum...
comment puis-je faire pour regarder ou modifier ce timeout
alors?

-----Message d'origine-----
Bonjour,

Il faut savoir que les variables de session sont stockées


en mémoire au
niveau du serveur. Donc s'il n'y a pas eu d'interaction


entre le navigateur
et le serveur dans un certain laps de temps, la variable


de session va être
détruite (ainsi que toute la session à vrai dire). Ce


laps de temps peut
varier selon la configuration du site web, mais par


défaut, elle est de 20
minutes.

Pour éviter le problème d'une référence à une valeure


nulle, il suffit de
valider le contenu de la variable de session:

if (Session["login"] == null)
Response.Redirect("login.aspx");

MonLogin = (login)Session["login"];


"tom" wrote in


message
news:6c9801c483a0$2dcbbf30$
Bonjour,
j'utilise depuis peu les variables de Session, et j'ai 1
probleme...

sur la 1ere page de mon appli, je recupere le login de
l'utilisateur et je le stocke:
Session["login"] = login;

ensuite, je recupere parfois cette valeur pour connaitre
le login de l'utilisateur.

mais cela me renvoie souvent cette erreur (mais pas tout
le tps!!!):
"System.NullReferenceException: La référence d'objet n'est
pas définie à une instance d'un objet."

quand je teste mon appli en mode debug, tout fonctionne
tres bien...

je suis donc un peu perdu.
d'ou cela peut il venir?

merci d'avance!


.



Avatar
Eric Guillemette
Ouvre le fichier Web.Config et tu devrais retrouver un setting ressemblant à
celui-ci dans la balise <configuration>

<sessionState
mode="InProc"
stateConnectionString="tcpip7.0.0.1:42424"
sqlConnectionString="data source7.0.0.1;user id=sa;password="
cookieless="false"
timeout="20" <!-- TimeOut = 20 minutes -->
/>



wrote in message
news:73a301c48430$c2d3e5e0$
ok merci.
j'avais en effet deja entendu parler de ce timeout.
par contre je trouve cela bizarre quand meme, je suis loin
d'attendre 20min. en general plutot 2min maximum...
comment puis-je faire pour regarder ou modifier ce timeout
alors?

-----Message d'origine-----
Bonjour,

Il faut savoir que les variables de session sont stockées


en mémoire au
niveau du serveur. Donc s'il n'y a pas eu d'interaction


entre le navigateur
et le serveur dans un certain laps de temps, la variable


de session va être
détruite (ainsi que toute la session à vrai dire). Ce


laps de temps peut
varier selon la configuration du site web, mais par


défaut, elle est de 20
minutes.

Pour éviter le problème d'une référence à une valeure


nulle, il suffit de
valider le contenu de la variable de session:

if (Session["login"] == null)
Response.Redirect("login.aspx");

MonLogin = (login)Session["login"];


"tom" wrote in


message
news:6c9801c483a0$2dcbbf30$
Bonjour,
j'utilise depuis peu les variables de Session, et j'ai 1
probleme...

sur la 1ere page de mon appli, je recupere le login de
l'utilisateur et je le stocke:
Session["login"] = login;

ensuite, je recupere parfois cette valeur pour connaitre
le login de l'utilisateur.

mais cela me renvoie souvent cette erreur (mais pas tout
le tps!!!):
"System.NullReferenceException: La référence d'objet n'est
pas définie à une instance d'un objet."

quand je teste mon appli en mode debug, tout fonctionne
tres bien...

je suis donc un peu perdu.
d'ou cela peut il venir?

merci d'avance!


.



Avatar
tom
merci j'aurais pas trouver tout seul ;)
c bien mis a 20min... bizarre...
j'ai quand meme l'impression qu'il "perd" ma variable de
Session bcp + vite que ca...
merci en tt cas!

-----Message d'origine-----
Ouvre le fichier Web.Config et tu devrais retrouver un


setting ressemblant à
celui-ci dans la balise <configuration>

<sessionState
mode="InProc"
stateConnectionString="tcpip7.0.0.1:42424"
sqlConnectionString="data source7.0.0.1;user


id=sa;password="
cookieless="false"
timeout="20" <!-- TimeOut = 20 minutes -->
/>



wrote in message
news:73a301c48430$c2d3e5e0$
ok merci.
j'avais en effet deja entendu parler de ce timeout.
par contre je trouve cela bizarre quand meme, je suis loin
d'attendre 20min. en general plutot 2min maximum...
comment puis-je faire pour regarder ou modifier ce timeout
alors?

-----Message d'origine-----
Bonjour,

Il faut savoir que les variables de session sont stockées


en mémoire au
niveau du serveur. Donc s'il n'y a pas eu d'interaction


entre le navigateur
et le serveur dans un certain laps de temps, la variable


de session va être
détruite (ainsi que toute la session à vrai dire). Ce


laps de temps peut
varier selon la configuration du site web, mais par


défaut, elle est de 20
minutes.

Pour éviter le problème d'une référence à une valeure


nulle, il suffit de
valider le contenu de la variable de session:

if (Session["login"] == null)
Response.Redirect("login.aspx");

MonLogin = (login)Session["login"];


"tom" wrote in


message
news:6c9801c483a0$2dcbbf30$
Bonjour,
j'utilise depuis peu les variables de Session, et j'ai 1
probleme...

sur la 1ere page de mon appli, je recupere le login de
l'utilisateur et je le stocke:
Session["login"] = login;

ensuite, je recupere parfois cette valeur pour connaitre
le login de l'utilisateur.

mais cela me renvoie souvent cette erreur (mais pas tout
le tps!!!):
"System.NullReferenceException: La référence d'objet




n'est
pas définie à une instance d'un objet."

quand je teste mon appli en mode debug, tout fonctionne
tres bien...

je suis donc un peu perdu.
d'ou cela peut il venir?

merci d'avance!


.





.



Avatar
Eric Guillemette
Essai de mettre cette ligne dans ton login, une fois que l'utilisateur a été
authentifié:
Session.Timeout = 20; // 20 minutes



"tom" wrote in message
news:7aa801c48468$f78043a0$
merci j'aurais pas trouver tout seul ;)
c bien mis a 20min... bizarre...
j'ai quand meme l'impression qu'il "perd" ma variable de
Session bcp + vite que ca...
merci en tt cas!

-----Message d'origine-----
Ouvre le fichier Web.Config et tu devrais retrouver un


setting ressemblant à
celui-ci dans la balise <configuration>

<sessionState
mode="InProc"
stateConnectionString="tcpip7.0.0.1:42424"
sqlConnectionString="data source7.0.0.1;user


id=sa;password="
cookieless="false"
timeout="20" <!-- TimeOut = 20 minutes -->
/>



wrote in message
news:73a301c48430$c2d3e5e0$
ok merci.
j'avais en effet deja entendu parler de ce timeout.
par contre je trouve cela bizarre quand meme, je suis loin
d'attendre 20min. en general plutot 2min maximum...
comment puis-je faire pour regarder ou modifier ce timeout
alors?

-----Message d'origine-----
Bonjour,

Il faut savoir que les variables de session sont stockées


en mémoire au
niveau du serveur. Donc s'il n'y a pas eu d'interaction


entre le navigateur
et le serveur dans un certain laps de temps, la variable


de session va être
détruite (ainsi que toute la session à vrai dire). Ce


laps de temps peut
varier selon la configuration du site web, mais par


défaut, elle est de 20
minutes.

Pour éviter le problème d'une référence à une valeure


nulle, il suffit de
valider le contenu de la variable de session:

if (Session["login"] == null)
Response.Redirect("login.aspx");

MonLogin = (login)Session["login"];


"tom" wrote in


message
news:6c9801c483a0$2dcbbf30$
Bonjour,
j'utilise depuis peu les variables de Session, et j'ai 1
probleme...

sur la 1ere page de mon appli, je recupere le login de
l'utilisateur et je le stocke:
Session["login"] = login;

ensuite, je recupere parfois cette valeur pour connaitre
le login de l'utilisateur.

mais cela me renvoie souvent cette erreur (mais pas tout
le tps!!!):
"System.NullReferenceException: La référence d'objet




n'est
pas définie à une instance d'un objet."

quand je teste mon appli en mode debug, tout fonctionne
tres bien...

je suis donc un peu perdu.
d'ou cela peut il venir?

merci d'avance!


.





.