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 :

SL3 : Appel de services WCF hébergés en service windows ou IIS


Sujet :

Silverlight

  1. #1
    Membre régulier Avatar de maitredede
    Homme Profil pro
    Pisseur de code
    Inscrit en
    Mai 2006
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Pisseur de code

    Informations forums :
    Inscription : Mai 2006
    Messages : 59
    Points : 106
    Points
    106
    Par défaut SL3 : Appel de services WCF hébergés en service windows ou IIS
    Bonjour,

    Je code une application en client/serveur, où le serveur peut être hébergé dans un service Windows ou dans IIS.

    Le client communique avec le serveur en utilisant WCF, les méthodes utilisent le modèle asynchrone, et le client doit implémenter un contrat de rappel.

    Le client peut être une application lourde ou un applet Silverlight 3.

    Pour éviter de réécrire mon code en fonction de chaque combinaison possible, le code est partagé entre les différents projets, notament les interfaces de contrats.

    J'arrive à faire communiquer mon client lourd avec mon service hébergé dans un service windows. Par contre, je n'arrive pas à faire communiquer le client silverlight ni avec le service windows, ni avec IIS.



    Donc, comment est-ce que je peux faire pour définir, configurer et héberger un service WPF :
    - hébergeable à la fois dans IIS ou dans un service Windows
    - supportant les sessions fiables WCF
    - supportant les contrats de rappel
    - avec cryptage et signature
    - consommable par un client lourd ou un client silverlight
    - le tout en n'ayant juste qu'à changer les paramètres de configuration client ou serveur (Bindings et EndPoints).

    Je ne pense pas que ça soit compliqué à faire, mais pour l'instant, je ne suis pas arrivé à réaliser tout ça.

    Si quelqu'un a une piste, je suis prenneur...

    Merci d'avance

  2. #2
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    C'est quoi la question au final ?

  3. #3
    Expert éminent sénior
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Points : 13 380
    Points
    13 380
    Par défaut
    Il n'y a pas 50 types de binding possible avec silverlight de toute façon.

    Si tu as besoin d'un contrat de rappel je pense que tu dois te tourner vers du duplex polling, mais il me semble que ce type de service n'est pas consommable en WPF (ou avec un client lourd tout simplement).

    Donc regarde du côté du Duplex Polling (ou même un binding perso).

  4. #4
    Rédacteur
    Avatar de The_badger_man
    Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2005
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 745
    Points : 8 538
    Points
    8 538
    Par défaut
    Tu peux pas.

    Silvelight ne supporte ni les sessions fiables ni les contrats de rappel (le navigateur web n'est pas adressable, donc pas de rappel du serveur vers le client).

    SL ne supporte que le BasicHttpBinding. Ce binding ne supporte pas les sessions fiables.

    Pour simuler les les contrats de rappel tu peux faire du duplex binding.
    Voici un article sur le duplex binding en SL2: http://badger.developpez.com/tutorie...ight-2-et-wcf/
    En SL3 l'utilisation est plus facile, voir la MSDN : http://msdn.microsoft.com/en-us/libr...05(VS.95).aspx

    Pour la sécurité avec SL3 : http://msdn.microsoft.com/en-us/libr...05(VS.95).aspx

    Tu dois donc créer 2 services différents (pointant vers la même logique métier, que tu auras bien sûr séparée de l'implémentation du service).

  5. #5
    Membre régulier Avatar de maitredede
    Homme Profil pro
    Pisseur de code
    Inscrit en
    Mai 2006
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Pisseur de code

    Informations forums :
    Inscription : Mai 2006
    Messages : 59
    Points : 106
    Points
    106
    Par défaut
    Ok, je vais voir pour le duplex.

    Concernant les sessions, est-ce que vous pensez qu'il est jouable de gérer ça avec un jeton de session ?

    Merci

  6. #6
    Rédacteur
    Avatar de The_badger_man
    Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2005
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 745
    Points : 8 538
    Points
    8 538
    Par défaut
    Tu veux faire des sessions ou des sessions fiables ? C'est pas pareil.

  7. #7
    Membre régulier Avatar de maitredede
    Homme Profil pro
    Pisseur de code
    Inscrit en
    Mai 2006
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Pisseur de code

    Informations forums :
    Inscription : Mai 2006
    Messages : 59
    Points : 106
    Points
    106
    Par défaut
    Citation Envoyé par The_badger_man Voir le message
    Tu veux faire des sessions ou des sessions fiables ? C'est pas pareil.
    A quel endroit ai-je loupé la nuance ?

    Dans mon cas, je pense que c'est session fiable.

    Donc à partir de quel moment une session "non fiable" devient "fiable" ?

  8. #8
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    159
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2009
    Messages : 159
    Points : 259
    Points
    259
    Par défaut
    Hello,

    Comme cela a été déjà dit, l'appel WCF depuis SL3 est limité au binding basicHTTPBinding avec une sérialisation XML ou binaire.

    Avec Silverlight, il faut également potentiellement faire attention aux appels cross-domains.

    Concernant le hosting dans un service NT, j'ai écris une série d'articles ici : http://msdn.microsoft.com/fr-fr/office/dd572039.aspx où j'hébergeais un service WCF dans un service NT que j'appelais depuis un client silverlight. L'article en question se trouve ici : http://msdn.microsoft.com/fr-fr/office/dd572044.aspx . Cela pourra peut-être t'aider ou éclairer ta lanterne sur ce qu'il faut faire pour que ton service WCF fonctionne avec tous les clients.

    Bye,

    David

  9. #9
    Rédacteur
    Avatar de The_badger_man
    Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2005
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 745
    Points : 8 538
    Points
    8 538
    Par défaut
    Citation Envoyé par maitredede Voir le message
    A quel endroit ai-je loupé la nuance ?

    Dans mon cas, je pense que c'est session fiable.

    Donc à partir de quel moment une session "non fiable" devient "fiable" ?
    Les sessions fiables permettent répondre à des problèmes de transport (perte de paquets par exemple).
    Plus d'infos ici :
    http://msdn.microsoft.com/fr-fr/library/ms733136.aspx


    Pour les sessions au sens classique du termes, c'est par ici :
    http://msdn.microsoft.com/fr-fr/library/ms731193.aspx

Discussions similaires

  1. [Débutant] Problème atteinte de ma BD via web services WCF Hébergé dans un service windows
    Par floryndas dans le forum Services Web
    Réponses: 1
    Dernier message: 18/11/2013, 11h48
  2. Débuger (et modifier) un service WCF hébergé sous IIS
    Par Etanne dans le forum Windows Communication Foundation
    Réponses: 0
    Dernier message: 15/03/2010, 10h44
  3. Problème Appel Service WCF
    Par tisserag dans le forum Silverlight
    Réponses: 3
    Dernier message: 08/10/2009, 00h35
  4. Service WCF qui ne fonctionne pas sous IIS
    Par Mozofeuk dans le forum Windows Communication Foundation
    Réponses: 11
    Dernier message: 05/12/2008, 11h29
  5. Réponses: 7
    Dernier message: 16/04/2008, 16h42

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