Question

en haut de mon modèle de workflow je mets un bloc ReceiveRequest / SendReply où je voudrais effectuer des opérations synchrones, ce qui permet alors le client utilisateur de recevoir une réponse rapide du flux de travail en cours de démarrage. Client appelle le WF via WCF.

Client sait sur l'état de la demande actuelle avec le statut d'une entrée sur ma base de données de l'application.

Par exemple, je crée un ordre, appeler un PlaceOrderWF, définir l'état de la commande sur DB « Accepté ». Le client peut alors effectuer ce qu'il veut alors que le WF vérifie fait, contrôles, etc ..., le réglage de la valeur finale de l'ordre de « Terminé » ou « erreur ».

Je pense que le client recevra une réponse juste après le bloc SendResponse. En fait, il ne semble pas fonctionner de cette façon, mais il attend une sorte de « événement » pour libérer le client. Malheureusement, je n'ai aucune preuve d'événements déclencheurs ce comportement.

Pour le tester, il suffit de mettre une activité de retard après l'activité SendResponde et vous devriez être en mesure de reproduire le comportement dont je parle.

Les conseils sur la façon d'éviter cette erreur indésirable?

modèle WF - Nom de l

Était-ce utile?

La solution

Le flux de travail continuera et exécuter autant que possible sur le thread courant et par conséquent ne retourne pas au droit de l'appelant away.If vous ajoutez un délai avec un petit délai, disons 1 seconde au workflow cette provoquera le flux de travail pour aller au ralenti et la réponse de WCF à envoyer au client, après quoi le flux de travail va se poursuivre.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top