[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
Présence ou non du serveur de webservices
Bon ca c'est règlé, finallement j'ai trouvé une solution hybride mais maintenant suis emmerdé ... :)
Dès lors que l'on créé un ChannelFactory et que l'on fait un CreateChannel, il retourne TOUJOURS un proxy. Jusque là tout est normal.
En revanche mon problème c'est que si pour une raison X ou Y, le serveur de services distribué est absent... ou innacessible... et bien BOOOOM
Ce que je souhaite faire c'est forcer la détection de la présence du serveur (donc à voir si le canal est réellement ouvert) toujours en ce souvenant que je ne connais pas à priori le contenu de l'interface dans la mesure où j'use de la reflexion.
Le but est de détecter tout problème de connexion avant meme de rendre la main au module qui nécessitait le webservice.
Donc je me suis dit je vais essayer en faisant Open() sur le ChannelFactory<>... mais euh voila... rien nada... il me dit Opened meme s'il n'y a rien de réellement ouvert, vu que le serveur n'est pas là... (c'est fait exprès)
Il me faut donc pouvoir vérifier la présence ou non du serveur et s'il est présent, qu'il accepte les connexions et les requêtes.