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

Windows Communication Foundation .NET Discussion :

[c# - Wcf] plusieurs services sur un meme host ?


Sujet :

Windows Communication Foundation .NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 103
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 103
    Par défaut [c# - Wcf] plusieurs services sur un meme host ?
    Bonjour,

    Dans le cadre d'une application distribuée, j'ai besoin de fournir des services (et donc de les consommer de l'autre coté).

    Ma question est, est-til possible, avec WCF, (.NET3) de fournir plusieurs services sur un host identique. (Host identique signifie meme IP et meme port TCP/IP)

    Car dès lors que je fourni un service j'utilise ServiceHost qui se construit avec soit un singleton vers une classe implantant le service, soit avec le type de ce singleton et la liste d'uri.

    Donc en gros est t'il possible d'avoir plusieurs ServiceHost (un pour chaque type de service) avec meme binding, meme endroint, mais contrats différents) ? quitte à changer les uri des endpoint genre:

    premier : net.tcp://srv-host:3000/servA
    second : net.tcp://srv-host:3000/servB

    Ou dois-je absolument changer de port TCP ?

    (Perso ca m'arrangerais de ne pas avoir à changer de port, et l'usage de canaux nommés n'est pas envisageable.)

    Merci

  2. #2
    Membre émérite
    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
    Par défaut
    Salut,

    Je viens d'essayer et ça semble marcher, aprés tout les deux URL sont différentes (ServA, ServB). De ton côté tu as des problèmes ?

  3. #3
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 103
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 103
    Par défaut
    Du coup j'ai un autre problème.

    En fait j'ai besoin de déterminer le type de l'interface à récupérer à l'exécution et non à la compilation...
    Or pour consommer le service, on utilise
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ChannelFactory<InterfaceService>
    avec InterfaceService l'interface en question, or à la compilation je ne le connais pas, je ne peux donc pas passer par ChannelFactory...
    Alors si quelqu'un à une solution je suis tout ouie...

    Merci

  4. #4
    Membre émérite
    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
    Par défaut
    Je ne suis pas sur de comprendre. J'ai à peine jeté un oeil à Wcf donc je vais peut être dire des bêtises mais côté client tu as besoin d'un proxy vers tes services, pas directement de l'interface qu'implémentent tes services non ?

    Tu as besoin de faire quoi en fait, découvrir à l'exécution quels services sont dispo à l'url net.tcp://srv-host:3000 ?

  5. #5
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 103
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 103
    Par défaut
    Non ca, c'est déjà réglé bien avant.

    Quand tu déclare un service sur le serveur et sur le client tuas un

    [ServiceContract]
    interface InterfaceService
    {
    ...
    }

    et dans le client pour le consommer tufait

    InterfaceService serv = (new ChannelFactory<InterfaceService>(binding, endpoint)).CreateChannel();

    Mon problème c'est que mon appli utilise la reflection PARTOUT et donc InterfaceService n'est pas connu au moment de la compilation ce qui me pose un probleme pour instancier un ChannelFactory qui est une classe générique...

    a l'exécution je connais l'interface dont j'ai besoin, mais pas à la compilation... Or pour faire une instanciation de ChannelFactory il me faut imposer un type à la compilation... ce type pouvant varier à l'exécution, c'est très génant

    j'espère avoir été plus claire...
    en attendant, j'utilise un méthode un peu gore, vu que j'utilise CodeDom pour générer du code à la volée et l'utiliser toujours par Reflection... mais bon... c'est lent et pas génial comme méthode, et bonjour la maintenance.

  6. #6
    Membre émérite
    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
    Par défaut
    Mais InterfaceService doit être connu par le client et le serveur, tu veux dire que le serveur crée aussi des services dynamiquements ?

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

Discussions similaires

  1. plusieurs action sur un meme bouton
    Par francksilvagni dans le forum Flash
    Réponses: 8
    Dernier message: 04/05/2007, 17h54
  2. [MySQL] Plusieurs jointures sur une même table
    Par stephyyr dans le forum Langage SQL
    Réponses: 2
    Dernier message: 28/06/2006, 14h24
  3. debutant lecture de plusieur variable sur une meme ligne
    Par Slumpy dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 16/06/2006, 19h37
  4. Plusieurs jointures sur la meme table [complexe]
    Par Wells dans le forum Requêtes
    Réponses: 2
    Dernier message: 06/06/2006, 11h41
  5. plusieurs sessions sur un même PC
    Par mouloudéen dans le forum Windows XP
    Réponses: 9
    Dernier message: 02/06/2006, 11h11

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