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

Services Web Discussion :

propriété ne garde plus sa valeur


Sujet :

Services Web

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Novembre 2006
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 109
    Par défaut propriété ne garde plus sa valeur
    Bonjour à tous,

    mon web service fait appel à un objet de type MyClass que j'ai défini. j'ai besoin de renseigner les propriétés de cet objet par des fonctions du web service. le problème est que si je renseigne une propriété par la fonction1, à l'appel de la prochaine fonction2 la propriété perd sa valeur!

    est- ce normal que la propriété ne garde pas sa valeur?

  2. #2
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    Tu es absolument sur que tu t'adresses à la même instance de l'objet ? ne pas perdre de vue qu'un webservice est en général stateless.

  3. #3
    Membre confirmé
    Inscrit en
    Novembre 2006
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 109
    Par défaut
    oui il s'agit de la même instance.
    mon code ressemble à ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    private MyClass  MyObject ;
     
    public Service()
    {
       InitializeComponent();
       MyObject.prop1 = "valeur1";
    }
     
     [WebMethod]
    public void SetProp2()		
    {
    MyObject.prop2 = "valeur2";
    }
     
    [WebMethod]
    public void UtiliseProp()		
    {
    string variable1=MyObject.prop1;
    string variable2=MyObject.prop2;
    }
    dans la fonction UtiliseProp, la prop1 renseignée dans le constructeur du webservice garde bien sa valeur, par contre celle renseignée par la fonction webMethode est toujours NULL !

  4. #4
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    Citation Envoyé par safisafi Voir le message
    oui il s'agit de la même instance.
    Ben, si j'en juge par ton code, c'est pas sur !

    En effet, la classe web service est instanciée à chaque appel de méthode (encore une fois C'EST STATELESS).

    Donc le comportement que tu as semble tout à fait normal.

    Accessoirement, je ne vois pas où tu instancies la classe MyClass......

  5. #5
    Membre confirmé
    Inscrit en
    Novembre 2006
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 109
    Par défaut
    Ah oui, je l'instancie dans le constructeur du web service.
    d'après des petites recherches apparemment je dois ajouter l'attribut EnableSession=true au webMethode
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [ WebMethod(EnableSession=true)]
    et travailler avec les variables de session pour pallier à ce problème !

    mais ce que je ne comprends pas : pourquoi la propriété définie dans le constructeur garde sa valeur !

  6. #6
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    Citation Envoyé par safisafi Voir le message
    Ah oui, je l'instancie dans le constructeur du web service.
    d'après des petites recherches apparemment je dois ajouter l'attribut EnableSession=true au webMethode
    Pour être précis : ajouter la propriété EnableSession à l'attribut WebMethod.

    Attention : dans ce cas ton service n'est bien entendu plus stateless.

  7. #7
    Membre confirmé
    Inscrit en
    Novembre 2006
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 109
    Par défaut
    le fait que mon web service n'est plus stateless, cela a des conséquences ?

  8. #8
    Rédacteur
    Avatar de WOLO Laurent
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2003
    Messages
    2 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Congo-Brazzaville

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

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 741
    Par défaut
    Oui, bien entendu, selon "Pattern and Practices" sur les webservices.

    1-Une plus grande consommation des ressources RAM
    2-Un problème de scalabilité, le jour ou tu décides d'éberger ton programme sur plusieurs serveurs, tu auras à faire aux problèmes de synchronisation.

    Découvrez la FAQ de MS SQL Server.
    La chance accorde ses faveurs aux esprits avertis !

Discussions similaires

  1. Réponses: 2
    Dernier message: 29/01/2010, 16h12
  2. propriété ne garde plus sa valeur
    Par safisafi dans le forum Services Web
    Réponses: 0
    Dernier message: 23/03/2009, 18h27
  3. Réponses: 2
    Dernier message: 03/02/2007, 17h55
  4. [XPath]fonction récupérer plus grand valeur d'un attribut ?
    Par snoop dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 18/05/2006, 14h27
  5. [Debutante] trouver les 5 plus grandes valeurs
    Par Sarrus dans le forum Langage SQL
    Réponses: 11
    Dernier message: 25/07/2005, 15h39

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