A priori, si on tente de créer un service Workflow Foundation 4.5 et un contrat, l'utilisation de deux SendReply pour un Receive n'est pas supportée.

Depuis la sortie de WF4.5, cette situation a été rapportée comme connue et le Contract First n'est pas utilisable de la sorte. On recommande de n'avoir qu'une activité SendReply en dehors de l'activité If.

Dans les faits, le problème n'est pas là. C'est la commande qui sert à créer le second SendReply qui ne sait pas qu'il faut respecter un contrat.

Si on compare les deux activités SendReply on constate les points de divergences suivants :

Activité créée par le Template Code First

Activité créée via la commande « Create SendReply »

 

Pour résumer :

  • La propriété action n'est pas bonne.
  • Les paramètres du message ne sont pas bons.

Si on corrige ses deux éléments, le service respecte à nouveau le contrat. Il y a donc bien un petit bug du côté de la commande « Create SendReply ». Mais si on comprend ce bug, on peut y remédier.