Estoy construyendo un servicio WCF que expondrá varias operaciones, se ejecutará en IIS porque necesita puntos finales HTTPS. La mayoría de las operaciones funcionarán en segundos o menos; sin embargo, una o dos de estas operaciones tomarán entre 5-90 minutos.¿Cuál es la forma correcta de manejar operaciones de servicio de larga ejecución con WCF hospedado en IIS?
El principal consumidor de este servicio será una aplicación ASP.NET MVC; ¿Cuál es la forma correcta de manejar esto?
¿Debo aumentar el tiempo de espera y hacer algunas llamadas ajax? ¿Debería agregar una tabla a mi base de datos y hacer que las operaciones de larga ejecución actualicen esta base de datos y hacer que la interfaz web sondee esta tabla cada minuto? No estoy seguro de qué (si es que existe) la mejor práctica generalmente aceptada para esto.
Si las operaciones de larga duración no transfieren datos, entonces quizás deba dividir esto en un procesador asíncrono. Por lo tanto, el cliente solicitará que se inicie el trabajo, luego revisará a intervalos regulares para obtener la respuesta o un mensaje que diga volver más tarde. – Noah
@Noah, las operaciones de larga ejecución no devuelven demasiados datos, hasta que están completos, donde devuelven un mensaje de aproximadamente 50kb. – Nate
Definitivamente no debe mantener una conexión HTTP abierta por tanto tiempo si no transfiere datos, por lo que probablemente sea mejor dividirla. @Jim proporciona un buen ejemplo. – Noah