IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

Perte de session


Sujet :

ASP.NET

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 56
    Points : 24
    Points
    24
    Par défaut Perte de session
    Dans un projet (site de commerce) en C# j'ai un probleme de perte des sessions.

    A mon avis il n'y a rien de particulier dans mon code qui expliquerait ça et comme ça se produit de façon apparemment aléatoire (de temps en temps, sans raison apparente) je soupçonne que ça vienne en fait du serveur.

    A votre avis est ce possible que cela vienne du serveur ?


    Ou alors faut il faire une manip speciale dans le global.asax ou le web.config ?


    PS:
    je fais simplement des manips du genre
    Session["machin"]=x;
    ou
    y=Session["bidule"];
    ou
    Session["truc"]=null;

    et autres if(Session["chose"]!=null){}
    ....rien d'extraordinaire donc.

  2. #2
    Membre actif Avatar de quanou
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    311
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 311
    Points : 247
    Points
    247
    Par défaut
    Ben, il est normal que la session se perde au bout d'une certaine durée (20 min par défaut). Il faut juste gérer "proprement" cette perte de session vis à vis de l'utilisateur.
    Nous tenir au courant lorsqu'on fait l'effort de vous répondre...

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 56
    Points : 24
    Points
    24
    Par défaut
    nan nan, j'aurais du préciser: j'ai fixé le timeout à 60.
    Dans le cas présent les pertes de sessions n'ont pas de rapport avec cette durée limite. Elles peuvent même se produire au bout de quelques secondes.

    j'ai aussi testé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <sessionState mode="StateServer" cookieless="false" timeout="60"/>
    dans le fichier web.config mais apparemment le serveur n'est pas configuré pour ce mode (et comme c'est un serveur mutualisé je ne peux rien y faire.)


    J'ai aussi remise <compilation debug="false"/> au lieu de true, je ne sais pas encore si ça va y changer quelque chose....

  4. #4
    Membre actif Avatar de quanou
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    311
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 311
    Points : 247
    Points
    247
    Par défaut
    Citation Envoyé par Crypt
    nan nan, j'aurais du préciser: j'ai fixé le timeout à 60.
    Dans le cas présent les pertes de sessions n'ont pas de rapport avec cette durée limite. Elles peuvent même se produire au bout de quelques secondes.

    j'ai aussi testé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <sessionState mode="StateServer" cookieless="false" timeout="60"/>
    dans le fichier web.config mais apparemment le serveur n'est pas configuré pour ce mode (et comme c'est un serveur mutualisé je ne peux rien y faire.)


    J'ai aussi remise <compilation debug="false"/> au lieu de true, je ne sais pas encore si ça va y changer quelque chose....
    Slt,
    Ca n'arrive pas en dév ?
    Tu as deux durées (cookie + session) que tu peux paramétrer dans ton web.config qui "écrase" à ce moment là les durées paramétrées au niveau de IIS ou dans le machine.config.

    Si c'est "reproductible" en dév, faire à ce moment là des tests en diminuant ces durées et/ou mettre un point d'arrêt au SessionOnEnd du global.asax pour voir si ça vient de tes variables de session ou de la session elle meme.
    Nous tenir au courant lorsqu'on fait l'effort de vous répondre...

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 56
    Points : 24
    Points
    24
    Par défaut
    bon, je regarderai ça.


    mais j'aimerai savoir, est ce que ça peut éventuellement venir d'un probleme de configuration du serveur ?

  6. #6
    Membre actif
    Inscrit en
    Janvier 2004
    Messages
    208
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 208
    Points : 227
    Points
    227
    Par défaut
    salut

    que tu configure un timeOut de 60Min en web.Config c'est bien, alors fait pareil pour ton alias application ou Ton WebRoot sur IIS.

    cordialement

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 56
    Points : 24
    Points
    24
    Par défaut
    le serveur IIS n'est pas à nous et comme il est mutualisé on n'a pas accés à sa configuration.


    alias application

    qu'est ce que c'est ?

  8. #8
    Membre actif
    Inscrit en
    Janvier 2004
    Messages
    208
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 208
    Points : 227
    Points
    227
    Par défaut
    par defaut IIS fait des sessions utilisateur de 20 Min.

    Je pense que ton prestataires de services est quand meme en mesure de te donnée le timing de session.

    prend la valeur par defaut pour faire des tests

    alias application c'est un rep virtuel qui comporte le nom de ton application .NET

    exemple ton projet de dev .NET porte un nom.
    j'ai pour habitude de recrée le meme nom d'application sur le rep virtuel

  9. #9
    Membre actif Avatar de quanou
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    311
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 311
    Points : 247
    Points
    247
    Par défaut
    Citation Envoyé par Crypt
    le serveur IIS n'est pas à nous et comme il est mutualisé on n'a pas accés à sa configuration.
    Tu peux surcharger les paramètres de durée de session et de cookie pour ta propre appli dans le web.config de ton appli. Je ne me souviens plus des params à mettre dans le web.config mais un coup de google devrait suffire.
    T'as qu'à essayer de mettre 1 (min) pour voir. Les 20 min au niveau de IIS ne servent alros plus pour ton appli.

    Pour la question : est-ce ca peut venir du serveur ? Ben, par expérience, dans l'absolu, tout est possible...
    J'ai aussi un problème récurrent et aléatoire (en tout cas non déterminé) d'expiration de session concernant les ReportViewer. Alors que l'appli n'a pas évolué depuis des mois, le problème est apparu du jour au lendemain.En plus, on héberge nous meme notre serveur...Je soupçonne les mises à jour serveur mais bon, pas encore eu le tps de m'y pencher sérieusement.

    Bon courage
    Nous tenir au courant lorsqu'on fait l'effort de vous répondre...

  10. #10
    Membre habitué Avatar de mioux
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Novembre 2005
    Messages
    367
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2005
    Messages : 367
    Points : 191
    Points
    191
    Par défaut
    Salut

    Je m'inscruste dans la discution, parce que j'ai le même problème. A la différence près que moi j'ai accès aux config du serveur

    J'ai mis le timeout à 20 minutes dans IIS et pas de timeout dans le web.config de mon application.

    Les paramètres de session :
    Session state mode : InProc
    Cookieless mode : Autodetect
    Session timeout : 20

    Oh et on a pas de visual studio pro ( le patron nous a dit qu'il voulais bien l'acheter mais "comme on a visual studio 2003, finalement on l'achèrera pas") je n'ai pas de possibilités de lancer de débugger (vu qu'on ne travaille "que" avec Visual Studio Express)

    Impossible de reproduire en dev... on a pas trouvé de "raison logique qui fais perdre la session" autre que quand on met à jour une classe dans le dossier app_code (uniquement en dev donc...)

    Pourtant le client nous a rapporté des pertes de sessions alléatoires...

    Si vous avez une idée je suis preneur

  11. #11
    Membre expérimenté Avatar de Arthis
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 265
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : Italie

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 265
    Points : 1 352
    Points
    1 352
    Par défaut
    apres mes petites recherches, j'ai vu deux causes possibles au expirations de sessions :

    1) w3wp.exe qui redémarre et qui fait sauter toutes les sessions.. Mais je trouve ça bizarre que ça arrive si souvent.

    2) perso j'utilisais betement un server.transfer qui faisait que tous mes objets session crée dans la page tombaient à l'eau.

    Pour vos cas, je penserais plus à une explication du premier ordre. Mais la technique me dépasse de loin pour résoudre le problème...


    Si vous avez d'autres pistes ou des idées , n'hésitez pas je suis archi preneur aussi...
    a+ et bon courage,

  12. #12
    Membre habitué Avatar de mioux
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Novembre 2005
    Messages
    367
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2005
    Messages : 367
    Points : 191
    Points
    191
    Par défaut
    Je pense que la deuxième solution ne s'applique pas à moi, je n'utilise que des Session.Add(), Session["trucmuche"], Session.Content["trucmuche"] et un session.destroy à la toute première page qui n'est jamais rapellée (sauf en cas de perte de session justement, c'est ma page de login)

  13. #13
    Membre éprouvé
    Profil pro
    Inscrit en
    Août 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2003
    Messages : 835
    Points : 1 046
    Points
    1 046
    Par défaut
    Hello,

    Les variables de sessions peuvent être perdues si l'application redémarre. Il peut y avoir plusieurs raisons à cela, par exemple :

    - un fichier de config (celui de l'appli ou le Machine.config ou web.config global à la machine) a changé
    - le contenu du répertoire bin de l'appli a changé
    - un sous répertoire de l'appli est créé/supprimé

    et d'autres.

    Un excellent site et article pour débugger ce genre de problème ici.
    Ici on explique comment logguer les raisons d'un redémarrage d'une appli asp.net, trés trés utile.

    J'ai récemment eu ce genre de problème, les logs m'ont dirigé vers un hotfix de microsoft, l'origine étant un bug MS dans asp.net

Discussions similaires

  1. [JSP][session] perte de session et sendRedirect
    Par blaz dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 30/03/2007, 09h32
  2. Perte de Session d'une page à l'autre
    Par Flam dans le forum Langage
    Réponses: 3
    Dernier message: 15/03/2006, 14h34
  3. [Struts]Redirection globale en cas de perte de session
    Par Mercenary Developer dans le forum Struts 1
    Réponses: 10
    Dernier message: 03/02/2006, 14h40
  4. [navigateur]Problême de pertes de sessions sous IE (.js)
    Par Invité4 dans le forum Général JavaScript
    Réponses: 26
    Dernier message: 21/11/2005, 17h53
  5. [VB.NET] Perte de session entre 2 projets
    Par TekP@f dans le forum ASP.NET
    Réponses: 3
    Dernier message: 02/05/2005, 09h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo