2010-03-16 9 views
0

Dans mon application Workflow Foundation 4.0 RC, j'ai une paire de messagerie WCF 'Receive' et 'SendReplyToReceive' qui fonctionne correctement avec une opération simple de demande/réponse, mais J'ai du mal à tenter d'effectuer une validation sur la requête et de répondre avec un défaut. Dans WCF, je suis capable de créer des contrats de défaut personnalisés (qui à leur tour ont envoyé des erreurs SOAP) mais je ne vois pas comment y parvenir avec les activités intégrées de messagerie de workflow.Problèmes de service Web Windows Workflow Foundation 4.0 et WCF (erreur soap)

Je peux seulement sembler répondre avec un objet de transfert de données (je ne suis même pas capable de répondre avec un choix d'objet).

Des idées? (Pouvez-vous sauver encore ma journée Maurice !?)

Merci!

Répondre

2

Il s'avère que ceci peut être fait mais n'est pas tout à fait aussi découvrable que je le voudrais. Je ne pense pas que j'aurais découvert ça si Matt Milner et Dave Cliffe ne m'avaient pas montré comment ça fonctionnait.

L'astuce consiste à ajouter une seconde SendReply pour la même activité de réception. Cette seconde SendReply retourne une variable de type FaultException et son but est d'aider à définir le bon contrat d'opération. Lorsqu'une erreur survient, lancez simplement l'exception FaultException comme si vous supprimiez normalement le flux de travail ou renvoyiez la faille et laissez le flux de travail intact et maintenant le client le verra comme tel.

Mise à jour: Cochez this document pour un nouveau livre blanc "Comment envoyer et recevoir des erreurs dans les services de flux de travaux". Voir aussi mon article de blog here.

+0

Très bien - merci Maurice! – Lygpt