Accueil > WCF > Comment étendre le binding d’un endpoint par défaut ?

Comment étendre le binding d’un endpoint par défaut ?

D’habitude lorsque je fais un petit test en WCF, j’ai l’habitude, pour aller plus vite, de laisser mon ServiceHost créer automatiquement les endpoints dont j’aurai besoin suivant l’adresse de base que j’aurai fournie dans le fichier de configuration. C’est cool et les endpoints créés de façon automatique sont appelés en fait des default endpoints (les points de terminaison par défaut).

Sauf que j’ai voulu, lors d’un de mes tests, changer l’encodage utilisé pour les messages alors je me suis dit qu’il fallait obligatoirement passer par un endpoint créé manuellement dans le fichier de configuration et par la suite utiliser l’attribut bindingConfiguration pour lui attribuer le nom de la nouvelle configuration créée. Mais il y a deux méthodes plus simples :

  • Passer par une configuration de binding par défaut. Pour info une configuration de binding par défaut est une configuration qui n’a pas de nom. L’attribut name n’est pas renseigné donc tout endpoint dont l’attribut bindingConfiguration n’est pas défini, utilisera cette configuration associée si son binding lui correspondant. Cela est valable pour les endpoints par défaut.
  • Un peu plus complexe mais le problème avec la première méthode est que si on a déjà une configuration par défaut déjà disponible utilisée par d’autres endpoints et qu’on n’aimerait pas modifier alors cette deuxième méthode nous permet de pallier à ce problème. Pour cela il faut passer par le mappage des endpoints par défaut c’est à dire utiliser l’élément protocolMappings, dans le mappage ajouté pour le protocole http et le binding basicHttpBinding dans notre cas, j’utilse l’attribut bindingConfiguration fourni.

Voilà j’espère que ce billet vous a été utile 😉

Publicités
Catégories :WCF Étiquettes :
  1. Talom
    16 septembre 2012 à 12 h 10 min

    Salut,
    après lecture, si on veut être rigoureux sur le titre, il faut plutôt intitulé le billet : Comment étendre le binding par défaut d’un endpoint. car c’est bien du binding par défaut et non le endpoint dont il est question …non ??

    J'aime

    • 16 septembre 2012 à 12 h 54 min

      Salut Talom,

      Merci pour ton commentaire.

      Lorsqu’aucun endpoint n’est défini mais qu’on a quand même défini une adresse de base, alors WCF nous crée des endpoints par défaut (default endpoints) en prenant soin de bien nous configurer l’adresse, le contrat et le binding. C’est la configuration de ce binding créé pour le endpoint par défaut dont je parle. Mais cependant dans le cas de certains protocoles comme Http deux binding sont en concurrence : basicHttBinding et wsHttpBinding ! Par défaut c’est le basicHttpBinding qui est choisi. Bref je peux bien aussi écrire : Comment étendre le binding par défaut d’un endpoint par défaut ?

      Je t’accorde le fait que le titre n’est pas très rigoureux mais il faut noter qu’en WCF la notion de « default bindings » n’existe pas mais celle de « default endpoints » si 😉

      Cordialement,
      Holty Samba

      J'aime

  1. No trackbacks yet.

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s

%d blogueurs aiment cette page :