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 :

Probleme de Session (je crois)


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 13
    Par défaut Probleme de Session (je crois)
    Bonjour,

    J'ai développé un petit panier ecommerce que je pensais pratique. Il est implémenté dans 2 sites.

    Dans le premier, il est utilisée dans une page asp.net avec masterPage. Tout fonctionne très bien.
    Dans le second, il est implémenté dans un UserControl qui est dans une page asp.net avec masterPage.

    Le UserControls "contenant" est chargé au "Page_Load" de la page asp.net. Le l'événement postback pour ajouté au panier est chargé dans le "OnInit" du UC. Le panier est chargé au "Page_Load" du UserControl :
    if ((Shop.Basket)Session["Invoice"] != null) _invoice = (Shop.Basket)Session["Invoice"];
    (sinon, _invoice= new objectPanier

    LES BUGS
    Lorsque j'ajoute un élément au panier
    _invoice.AddProduct(85, 1); // (id,qt) /fonctionne sur l'autre site!
    Soit cela ne semble pas s'ajouter correctement au panier, soit c'est compté 2X.

    Pire, en naviguant sur le site, le panier change tout seul ! parfois vide, parfois tel item (ajouté), parfois tel autre.


    Ces multiples changements m'ont fait penser à un probleme de Session. J'ai donc essayé de stoquer en "Cache" ou "ViewState", sans succes.
    Pour les session, j'ai tenté de passer en "StateServer" mais les bugs sont les memes.


    Pour ceux qui veulent voir la chose bizaroide : http://diffusion-fred.com - Aller par exemple sur le livre "Hugues, moine soldat", ajouter au panier (rien ne se passe). A nouveau ajouter au panier, il y est 2x. Se promener sur le site et ajouter d'autres livres pour voir les bugs apparaitre (colone de droite, les 2 listings du panier).
    Exemple, en préparant ce message, j'ajoute 2 "Hugues moine Soldat", 1 "cuisines de provence" et je me retrouve avec 2 de chaque.

    Merci pour toutes les idées et aides que vous pourrez me donner.

  2. #2
    Membre chevronné Avatar de jacky01
    Profil pro
    Développeur .NET
    Inscrit en
    Juin 2007
    Messages
    537
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juin 2007
    Messages : 537
    Par défaut
    Bonjour,
    En effet c'est bizarre à l'utilisation , au début ça fonctionne une fois sur deux, mais ensuite au bout de quatre il en enlève un puis en remet 2 c'est très bizarre. A mon avis essais de le tracer en debug car il doit y avoir une incohérence au niveau des postback ou des constructions.

    Il me semble que par défaut les UC sont chargés en même temps que leur master page

  3. #3
    Membre Expert Avatar de Arthis
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 265
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Italie

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 265
    Par défaut
    je ne pense pas que cela ressemble à un probleme de sesion , par contre verifie ton code, je suis sur que la solution est lá quelque part....

    PAr exemple n'instancies tu pas à plusieurs endroit ton caddie par hasard?

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 13
    Par défaut
    Merci à vous pour ce début d'aide...

    ... Le pb des "doubles commandes" est résolu, j'avais chargé deux fois l'événement dans l'init du control ("+=" != "=" :s)

    EDIT : Résolu !
    Pb de "new" mal placé

  5. #5
    Membre Expert Avatar de Arthis
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 265
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Italie

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 265
    Par défaut
    D'apres ce que j'ai pu voir en surfant rapidement sur ton site:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     La référence d'objet n'est pas définie à une instance d'un objet.
    Description : Une exception non gérée s'est produite au moment de l'exécution de la demande Web actuelle. Contrôlez la trace de la pile pour plus d'informations sur l'erreur et son origine dans le code.
     
    Détails de l'exception: System.NullReferenceException: La référence d'objet n'est pas définie à une instance d'un objet.
     
    Erreur source:
     
    Ligne 22 :     {
    Ligne 23 :         if ((ZoneB.Shop.Basket)Session["Invoice"] != null) _invoice = (ZoneB.Shop.Basket)Session["Invoice"];
    Ligne 24 :         if (_invoice.BasketID == "")
    Ligne 25 :         {
    Ligne 26 :             _invoice.BasketID = "myInv";
    Plutot que de travailer avec une variable que tu remplies ainsi, ne serais t'il aps plus commode de travailler directement avec ta session :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    public objectPanier Invoice
    {
      get
           {
              if (Session["Invoice"]==null)
                   Session["Invoice"]= new objectPanier();
               return (objectPanier)Session["Invoice"];
            }
    }
    de cette maniere plus de probleme de j ai un objet ou pas, il faut que je le creee oui mais quand, etc..

    Fais ce changement et ensuite on en reparle de ton probleme...

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 13
    Par défaut
    Merci Arthis... J'ai corrigé le pb qui venait bien de la variable.

    Tu es passé pendant la mise à jour / correction du pb et tant mieux, je vais simplifier avec ta solution... En le faisant, je n'aurais pas eu tous ces problèmes.

    Merci à vous

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Probleme de sessions avec un hébergeur
    Par totoranky dans le forum Langage
    Réponses: 3
    Dernier message: 20/10/2005, 02h36
  2. [Sécurité] Probleme de sessions
    Par perco dans le forum Langage
    Réponses: 4
    Dernier message: 05/10/2005, 11h04
  3. [VB.Net] Problème de Session
    Par theartist dans le forum ASP.NET
    Réponses: 7
    Dernier message: 09/09/2004, 16h06
  4. Problème de session sous Konqueror
    Par Escuzze dans le forum Applications et environnements graphiques
    Réponses: 4
    Dernier message: 06/07/2004, 11h52
  5. [C#] Probleme de session
    Par alexischmit dans le forum ASP.NET
    Réponses: 2
    Dernier message: 26/04/2004, 16h33

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