L'ordre des éléments de binding

Partant du principe que mieux vaut partager une expérience passée, que pas d'expérience du tout, je vais donc evoquer quelques épisodes récents de mes investigations sur WCF menées dans le cadre de l'implémentation du Starter Kit PRESTO.

Ayant voulu conjugué l'utilisation de WS-RELIABLE MESSAGING avec celle de WS-SECURITY, je suis tombé sur une erreur quelque peu difficile à cerner (Les opérations de chiffrement et signature fonctionnaient dans toutes les configurations sauf celle impliquant une opération de type requête-réponse avec garantie de livraison).
L'exception retournée de type "System.ServiceModel.Security.MessageSecurityException" indiquait l'erreur "An unsecured or incorrectly secured fault was received from the other party."
En fait, l'erreur provenait du fait que j'avais construit la collection d'éléments de binding sans tenir compte de l'ordre dans lequel ceux-ci sont filtrés dans le pipeline. En effet, l'élément ReliableSessionBindingElement doit être ajouté avant l'élément SecurityBindingElement.

L'ordre des éléments de binding est décrit dans la documentation WCF : https://msdn2.microsoft.com/en-us/library/ms733893.aspx