Je suppose que c'est parce que la session est expirée, que je perd mes variable de session, comment lutter contre ce phénomène ?
Je suppose que c'est parce que la session est expirée, que je perd mes variable de session, comment lutter contre ce phénomène ?
Augmenter la durée de vie d'une session (dans les options de ton site dans IIS, ya peut etre aussi moyen de le faire dans le Web.Config je suis pas sur)
Cela dit la session dure par defaut 20 minutes, ça ne te suffit pas ? Tu es sure que tu perds bien tes infos de session aprés expiration de celle-ci, ya pas un autre "bug" ?
Augmente la propriété de la proprietes TimeOut. Elle est par défaut égale à 20(en minute).
J'espere que c'est la solution
Amicalement Verboz
Si c'est 20 minutes, ca m'étonnerait que ce soit ca alors, mais en général quand je perd mes infos, c'est soit après plusieurs rechargement de page, soit après un certain temps d'inactivité. Mais il me semble que celui-ci est largement inférieur à 20 minutes.
Mais c'est 20 minutes quoi qu'il arrive ou alors seulement depuis que je n'ai rien fait ?
Je crois que c'est aprés 20 minutes d'inactivité du client.
Comment on augmente le TimeOut dans le Web.Config, la j'suis un peu perdue.
Et si c'est pas a cause de ca, ca pourrait etre quoi qui me fait perdre mes variables de sessions ?
Salut,
C'est l'attribut TimeOut.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 <sessionState mode="InProc" cookieless="true" timeout="20"/>
Dans MSDN (IE ou VS.NET) ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.1036/cpgenref/html/gngrfsessionstatesection.htm
Qu'on ne veut pas utiliser les cookies.
C'est réglé ou tu as toujours le problème?
Depuis que j'ai rajouté ce morceau dans mon adresse j'ai :
Au lieu de :http://localhost/MonAppli/(2w5oyo45b1rkrl45r4p4d145)/Default.aspx
Peut-on l'enlever ? Si oui, comment ?http://localhost/MonAppli
cookieless=pas de cookie, il faut bien qu'il passe le sessionid quelque part. Ben c'est dans l'url dans ce cas
Il existe d'autres modes pour les variables de Session (stockage en bd etc)
En fait c'est bizarre.
J'ai mis le TimeOut a 1, et je fais mon action 5 minutes apres il ne plante pas avec l'URL de ce type.
J'aimerais bien que tu me détailles le passage par cookies ainsi que le passage par URL. Comment ca marche ?
Oui enfin le plus simple c'est qd meme de mettre cookieLess="false", c'est tout. ça utilisera des cookies, comme avant.
Oui mais justement l'interet c'est que ca marche meme si la personne s'en va pendant 2h, quel est le mieux dans ce cas ?
je n'ai fait qu'un copier/coller de msdn pour montrer que c'était là qu'il fallait regarder...
Un des interets des sessions est une question de sécurité. Tu peux augmenter la durée de vie de tes sessions mais bon...
Tu peux également utiliser les cookies toi meme.
Mais le problème c'est que je n'ai jamais compris comment ca marche.
Puis ca risque pas de poser un probleme si l'utilisateur ouvre deux sessions à la fois ?
Une session c'est une variable en gros. Ou va-t-elle se mettre? Tout dépend de ta config.
Ca peut être chez le client (cookie temporaire), dans l'url, sur le serveur, dans une base de données. Il y a des tonnes de possibilités, chacune ayant ses avantages et ses inconvénients.
Si un utilisateur ouvre deux instances de navigateur, il aura deux sessions, c'est tout. Ainsi il pourrait etre authentifie sur un et pas sur l'autre.
Arf, je crois qu'il y a une legere incompréhension / embrouillage de pinceaux .
Donc, le concept de la session reste le meme que tu sois en cookieLess ou pas (sans cookie ou avec). La session c'est simplement un endroit (une collection) ou tu peux stocker des données par "connexion d'utilisateur", ça te permet de maintenir un état pour chaque utilisateur. Par defaut IIS gere la session en mémoire, mais comment fait il donc pour savoir quelle session appartient a qui ? Si tu as activé les cookies (mode par défaut cookieLess = false) alors un identifiant de session est mis coté client dans un cookie, ce cookie est renvoyé a chaque fois au serveur, ce qui lui permet de retrouver la bonne session pour la requete en cours. Maintenant si tu as mis cookieLess=true, alors cet identifiant de session n'est plus mis dans un cookie, mais simplement dans la query string (c'est le chiffre bizarre que tu vois).
La session doit expirer a un moment ou a un autre a cause du concept meme du protocole HTTP : c'est un protocole déconnecté, et tu n'as pas moyen de savoir qd l'utilisateur a quitté ton application, du coup si la session n'expirait pas, elle emcombrerait indéfiniement la mémoire de ton serveur. En ce qui concerne tes problemes d'expiration, sache comme je l'ai dit précedemment, qu'il y a un parametre de durée de session dans les parametres IIS de ton site Web, mais je ne sais pas ce qui se passe qd ce réglage là est différent de ce que tu mets dans ton Web.Config. Le mieux serait d'aller voir dans les MSDN.
Encore deux petites choses : un utilisateur s'il ouvre un deuxiemem navigateur pour aller sur ton site aura deux sessions différentes (je crois, il faudrait vérifier) , tout se passe pour toi comme si c'etait deux utilisateurs différent. Et enfin, comme l'a dit Ditch, il y a moyen de stocker les sessions non pas en mémoire, mais plutot en base de donnée, cela dit ça n'a rien a voir avec ton probleme .
Voilà, j'espere avoir un peu éclairé les choses.
Pas ne nouvelle, bonne nouvelle ?
Mes explications etaient a peu pres claires au moins ?
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager