Actualmente estoy trabajando en una aplicación de escritorio C# .NET que se comunicará a una base de datos a través de Internet a través de WCF y WCF Data Services. Habrá muchos puntos en la aplicación que pueden necesitar actualizarse en algún intervalo. La solución más fácil sería poner estas áreas en un temporizador y volver a consultar la base de datos. Sin embargo, con miles de clientes que se conectan a la capa de servicio y, por lo tanto, a la base de datos, estas operaciones serían muy costosas para el servidor.Buena solución C# .NET para administrar sondeos de bases de datos frecuentes
Lo que he considerado es crear un canal de información RSS que es consultado por el cliente, y le permite al cliente saber cuándo estas áreas particulares necesitan ser actualizadas. El feed de RSS será administrado por un servicio que sondea la base de datos en busca de cambios o itera a través de una lista de elementos que están en cola por las solicitudes de WCF realizadas por el cliente.
También he considerado crear alguna conexión directa y continua desde el cliente al servidor, pero no estoy seguro de qué puertos de firewall de salida se abrirían desde el cliente. Probablemente solo podría contar con el puerto 80/443.
Así que mi pregunta es qué soluciones han tenido éxito las personas implementando para resolver este problema? ¿Han hecho personas RSS? Servicios de sincronización de Microsoft? Comunicación bidireccional entre el cliente y el servidor a través de un puerto de salvar a través de WCF?
Cualquier idea es muy apreciada.
+1, pero me preocupan los miles de clientes que usan encuestas largas. Es probable que se necesite cierta optimización del entorno para las conexiones abiertas. Nunca he hecho esto con WCF, así que no puedo comentar sobre las dificultades/aspectos positivos. – marr75
+1 ¿Conoces alguna buena implementación de sondeo largo en C# utilizando WCF? Lo busqué en Google y no he encontrado buenos ejemplos. – BernicusMaximus
Lo siento, no lo hago. Sé que hay un canal Dúplex en WCF para Silverlight, pero por lo que he leído sondeará periódicamente y no realizará encuestas largas (http://msdn.microsoft.com/en-us/library/cc645028(VS.95) .aspx) –