2010-10-14 14 views

Répondre

0

En bref, vous pouvez le faire simplement grâce à la configuration!

Have you seen this tutorial? Do check this out.

Son un excellent tutoriel avec des images d'écran de l'ensemble du processus de base de la configuration d'un service d'échantillonnage avec plusieurs points de terminaison en utilisant le Microsoft Service Configuration Editor.

+1

Le lien est mort ... – Vaccano

+1

Yup. Lien mort. Une réponse complète est toujours meilleure, même si ti dit les mêmes choses dans le lien. –

+0

@Vaccano/Coral - Mise à jour du lien. Bien que je serais généralement d'accord avec les commentaires de Coral concernant la publication du contenu, dans ce cas, je trouve son un peu trop long et avec beaucoup de captures d'écran étape par étape - donc je ne pense pas qu'il y ait vraiment une façon succincte manière. D'où le lien. – InSane

12

Tout est une question de configuration - lorsque vous définissez votre service, vous allez simplement définir et définir deux points de terminaison - un pour wsHttpBinding, l'autre pour netTcpBinding. C'est aussi simple que ça!

<system.serviceModel> 
    <services> 
     <service name="YourNamespace.MyService"> 
     <endpoint 
      address="ws" 
      binding="wsHttpBinding" 
      contract="YourNamespace.IMyService" /> 
     <endpoint 
      address="net.tcp://localhost:8787/MyService" 
      binding="netTcpBinding" 
      contract="YourNamespace.IMyService" /> 
     <host> 
      <baseAddresses> 
       <add baseAddress="http://localhost:8282/" /> 
      </baseAddresses> 
     </host> 
    </service> 
    </services> 
</system.serviceModel> 

Maintenant vous avez votre service exposant deux points d'extrémité:

  • une aide de l'wsHttpBinding à http://localhost:8282/ws
  • un en utilisant le netTcpBinding à tcp://localhost:8787/MyService

Les deux extrémités sont pour le même service , pour le même contrat de service, par exemple offrent les mêmes fonctionnalités et méthodes de service.

Chaque point de terminaison de service WCF doit définir l'ABC de la WCF:

  • [A] DRESSE - où le service peut être atteint/appelé?
  • [B] inding - comment appeler le service (protocole, paramètres, sécurité, etc.)?
  • [C] ontract - qu'est-ce que le service offre à cette adresse, quelles méthodes sont exposées?
+1

Vous pourriez également avoir spécifié une adresse de base pour nettcp, juste pour des raisons de cohérence. –

+1

@Johann Blais: oui, vous pouvez certainement le faire - c'est entièrement à vous. Je voulais juste montrer à la fois la méthode - avec l'adresse de base (pour http), et sans spécifier une adresse explicite et complète dans la balise . –

+0

J'ai essayé ceci mais quand j'accède à http: // localhost: 8282/ws j'obtiens un HTTP 404 - erreur non trouvée de dossier. Y a-t-il autre chose nécessaire? –