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

Silverlight Discussion :

Communication RIA Services / WCF, un ou plusieurs proxies?


Sujet :

Silverlight

  1. #1
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Points : 8 734
    Points
    8 734
    Par défaut Communication RIA Services / WCF, un ou plusieurs proxies?
    Hello tout le monde

    Côté archi, j'ai mon RIA Services côté serveur qui appelle un service WCF hosté sur une autre machine

    A l'heure actuelle, dans mon DomainService, je crée un nouveau proxy à chaque fois que j'en ai besoin, exemple:

    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
    22
    23
    24
            [Query]
            public IEnumerable<Underlying> GetAllUnderlyings()
            {
                IEnumerable<Underlying> result;
                using (var service = new EMapsService.ServiceClient())
                {
                    result = service.GetAllUnderlyings();
                }
     
                return result;
            }
     
            [Query]
            public IEnumerable<PricingTask> GetAllPricingTasks()
            {
                IEnumerable<PricingTask> result;
                using (var service = new EMapsService.ServiceClient())
                {
                    result = service.GetAllPricingTasks();
                }
     
                return result;
            }
    Mon service WCF est configuré comme tel:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ConcurrencyMode = ConcurrencyMode.Multiple, InstanceContextMode = InstanceContextMode.PerSession
    Le fait de créé un nouveau proxy à chaque fois implique une nouvelle instance de mon service à chaque appel et j'ai donc pas de "session".

    L'idée est de faire un truc comme ça:

    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 EMapsService.ServiceClient eMapsService;
            private EMapsService.ServiceClient EMapsService
            {
                get
                {
                    if (eMapsService == null)
                    {
                        eMapsService = new EMapsService.ServiceClient();
                    }
     
                    return eMapsService;
                }
            }
     
            [Query]
            public IEnumerable<Underlying> GetAllUnderlyings()
            {
    
                    return EMapsService.GetAllUnderlyings();
    
            }
    Vous allez me dire que j'ai pas trop le choix si je veux pouvoir gérer une session mais quelles sont les différences entre les 2 façons de gérer mes proxies?

    Merci

  2. #2
    Membre confirmé Avatar de NicoL__
    Homme Profil pro
    Architecte
    Inscrit en
    Janvier 2011
    Messages
    399
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte

    Informations forums :
    Inscription : Janvier 2011
    Messages : 399
    Points : 577
    Points
    577
    Par défaut
    Je penser qu'avec un singleton cela doit marcher, mais attention à faire ton singleton correctement : thread safe surtout qu'un service web est bien multithreadé.
    Sinon si tu veux un que la session soit cohérente sur tous tes serveurs, il faudrait instancier un EMapsService.ServiceClient par session RIA et le stocker dans la session de ton service RIA.

  3. #3
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Points : 8 734
    Points
    8 734
    Par défaut
    Je vais étudier ça

    Merci

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 10/06/2011, 16h07
  2. Exception de communication avec service WCF
    Par mahdi26_ca dans le forum Silverlight
    Réponses: 1
    Dernier message: 09/04/2011, 10h24
  3. RIA Services / WCF Data Services ?
    Par jdiogon dans le forum Silverlight
    Réponses: 2
    Dernier message: 19/04/2010, 21h49
  4. Communication Web Service et WCF
    Par est09 dans le forum Windows Communication Foundation
    Réponses: 0
    Dernier message: 02/04/2009, 16h58
  5. Plusieurs services wcf en webservices
    Par topolino dans le forum Windows Communication Foundation
    Réponses: 1
    Dernier message: 23/03/2009, 16h56

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