Pregunta

en la parte superior de mi plantilla de flujo de trabajo que puse un bloque ReceiveRequest / SendReply donde me gustaría llevar a cabo operaciones síncronas, lo que permite entonces el cliente de usuario para recibir una respuesta oportuna del flujo de trabajo se inicie. cliente llama al WF a través de WCF.

El cliente sabe sobre el estado de la solicitud actual con el estado de una entrada en mi base de datos de la aplicación.

Por ejemplo, crear un pedido, llame a un PlaceOrderWF, establecer el estado de la orden de DB a "Aceptada". El cliente puede entonces realizar lo que quiera, mientras que el WF está haciendo comprobaciones, controles, etc, ..., estableciendo el valor final de la orden de "Completo" o "Error".

espero que el cliente recibirá la respuesta justo después del bloque de SendResponse. En realidad no parece trabajar de esta manera, sino que espera a que algún tipo de "evento" para liberar el cliente. Por desgracia, no tengo pruebas de los acontecimientos desencadenantes este comportamiento.

Para probarlo, sólo hay que poner una actividad de retardo después de la actividad SendResponde y usted debería ser capaz de reproducir el comportamiento que estoy hablando.

¿Alguna pista sobre cómo evitar este error no deseado?

plantilla WF - Operación nombre deja intencionalmente en blanco

¿Fue útil?

Solución

El flujo de trabajo continuará y ejecutar tanto como se pueda en el hilo actual y como resultado no vuelve a la derecha de llamadas away.If agrega un retardo con un pequeño tiempo de espera, por ejemplo de 1 segundo, para el flujo de trabajo de este hará que el flujo de trabajo para ir inactivo y la respuesta WCF que se envían al cliente después de lo cual continuará el flujo de trabajo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top