2010-03-25 5 views
0

J'essaie de me concentrer sur l'adressage des services de la WCF.WCF - service distant sans utiliser IIS - adresse de base?

Nous avons une configuration client-serveur où le serveur doit occasionnellement (peut-être une fois par jour) envoyer des données à chaque client. Je veux avoir un service d'écoute WCF léger sur chaque client hébergé dans un service NT pour recevoir ces données. Nous avons déjà une telle configuration de service NT hébergeant des services WCF locaux pour d'autres tâches, donc les frais généraux sont minimes.

En raison du code existant existant sur le serveur, je crois que le service doit être exposé en tant qu'ASMX et utiliser basicHttpBinding pour lui permettre de se connecter.

Chaque client est enregistré sur le serveur par l'utilisateur (ils doivent les configurer individuellement), donc la découverte n'est pas le problème. Ma question est, comment l'adressage fonctionne-t-il? J'imagine que l'utilisateur d'entrer l'adresse du client sur le serveur sous la forme

http://0.0.0.0/MyService 

ou même

http://hostname/MyService 

Si oui, comment puis-je configurer le service client dans son App.config? Est-ce que j'utilise localhost?

Sinon, quelle est la manière recommandée d'exposer le service au serveur?

Note:

  • Je ne veux pas héberger dans IIS qui ajoute que les exigences supplémentaires pour le matériel nécessaire pour le client.
  • Les clients seront certainement situés sur des réseaux locaux, et non pas sur l'Internet public

Répondre

1

Vous configurez l'adresse de base du service comme ceci:

<system.serviceModel> 
    <services> 
    <service name="Ns.FooService"> 
     <host> 
     <baseAddresses> 
      <add baseAddress="http://localhost:9999" /> 
     </baseAddresses> 
     </host> 
     <endpoint 
      address="/foo" 
      binding="basicHttpBinding" 
      contract="Ns.IFooContract" /> 
    </service> 
    </services> 
</system.serviceModel> 

Et votre service pourrait être accessible par http://servename:9999/foo. Vous pouvez jeter un oeil à this article pour plus d'informations.

+0

Merci Darin, c'est exactement ce que j'avais besoin de savoir. –

Questions connexes