2009-11-04 8 views
4

Toutes les excuses pour le titre long mais cherchant une solution à ce qui pourrait être un problème commun.Webservice WCF fonctionnant sur un cluster à deux serveurs, avec loadbalancer, résolvant l'adresse du service Web

Nous avons une loadbalancer avec adresse, disent: www.myloadbalancer.com

Voici deux serveurs Web

Premier serveur: webserver1.farm.com
serveur Second: webserver2.farm.com

Nous avons déployé un webservice sur les deux serveurs mais remarqué quelque chose de drôle en essayant de consommer les services Web ailleurs.

Nous déployons à:

  • webserver1.farm.com/service1.svc et
  • webserver2.farm.com/service1.svc

Parce que les serveurs Web ne sont pas accessibles directement en ligne, vous devez passer par l'équilibreur de charge. L'adresse à consommer est donc www.myloadbalancer.com/service1.svc.

Toutefois, ce que nous trouvons est que si le loadbalancer vous dirige vers le serveur 1, et que vous vérifiez le WSDL, vous voyez le nom du service et les détails comme webserver1.farm.com/service1.svc et non www.myloadbalancer.com/service1.svc.

Si vous essayez de consommer www.myloadbalancer.com/service1.svc, disons dans Visual Studio 2008, vous obtenez un avertissement indiquant que webserver1.farm.com/service1.svc n'existe pas.

La question principale est, est-il possible de donner un nom d'alias à un webservice. en d'autres termes est-il possible d'obtenir le service de se décrire comme www.myloadbalancer.com/service1.svc indépendamment du fait que nous nous retrouvons sur le serveur web 1 ou 2?

Répondre

4

Un fichier WSDL est un fichier WSDL. Modifiez-le pour pointer vers l'URL correcte. (Vous n'avez pas besoin d'utiliser le http://webserver1.farm.com/service1.svc?WSDL généré automatiquement si vous ne voulez pas.)

+0

Est-ce vraiment si simple;) Je vais essayer ... – Solyad

+1

Ce tutoriel peut l'expliquer? http://www.pluralsight.com/community/blogs/kirillg/archive/2006/06/18/28380.aspx – Solyad