2009-04-14 6 views
4

Je crée une application distribuée qui nécessitera 6 services différents. Je vais devoir démo l'application sur mon ordinateur portable XP en utilisant Visual Studio 2008.Exécution de plusieurs services sur net.pipe dans WCF

Est-il possible d'exécuter plusieurs services sur localhost en même temps, tout en utilisant net.pipe?

Par exemple:

net.pipe://localhost/DirectoryService 
net.pipe://localhost/MathService 

Si non, est-il un autre moyen d'héberger ces services WCF sans utiliser le serveur IIS/webdev? net.tcp? Autre chose?

Répondre

8

Oui, si les adresses de liaison sont uniques. Les deux exemples que vous avez montrés fonctionneront correctement avec la liaison net.pipe. Gardez à l'esprit que la liaison net.pipe ne fonctionne que sur la machine locale. Si vous souhaitez que vos services soient accessibles à partir de machines distantes, vous devez utiliser une autre liaison, telle que net.tcp. Cela dit, net.pipe est le recommandé liaison à utiliser si vos services fonctionnent sur le localhost car il est plus efficace que les autres liaisons.

2

Vous pouvez utiliser HTTP comme point de terminaison de service sans IIS, jetez un oeil à la classe ServiceHost. C'est ce que j'utilise pour les tests WCF locaux et ça marche très bien.

8

Une autre chose que vous devez savoir à propos des adresses net.pipe est que vous fournissez un URN, pas une URL. net.pipe est une implémentation en mémoire et "l'adresse" que vous spécifiez peut être n'importe quoi.

net.pipe://IHateCats 
net.pipe://NamedPipes/Are/Fast 

Ceux-ci travailleront tous, indépendamment de tout autre facteur. C'est juste l'identifiant unique de ce tube nommé. La pile réseau n'est pas impliquée dans cette forme de communication.

Questions connexes