Tengo una aplicación de cliente que intenta cada 10 segundos enviar un mensaje a través de un servicio web de WCF. Esta aplicación cliente estará en una computadora a bordo de un barco, que sabemos tendrá conectividad irregular a Internet. Me gustaría que la aplicación intente enviar datos a través del servicio y, si no puede, ponerlos en cola hasta que pueda enviarlos a través del servicio.Recuperación de una CommunicationObjectFaultedException en WCF
Para probar esta configuración, inicio la aplicación cliente y el servicio web (ambos en mi máquina local), y todo funciona bien. Intento simular la mala conexión a Internet matando el servicio web y reinicándolo. Tan pronto como mato el servicio, comienzo a recibir CommunicationObjectFaultedExceptions, que se espera. Pero después de reiniciar el servicio, sigo obteniendo esas excepciones.
Estoy bastante seguro de que hay algo que no entiendo acerca del paradigma del servicio web, pero no sé qué es eso. ¿Alguien puede ofrecer asesoramiento sobre si esta configuración es factible o no y, de ser así, cómo resolver este problema (es decir, restablecer el canal de comunicaciones con el servicio web)?
Gracias!
Klay
10 si pudiera - wow, este comportamiento es totalmente bajo el radar, nunca se habrían resuelto qué estaba pasando si no hubiera tropezado con esta respuesta. –
¡Bravo! Implementé una versión de esto como un método de extensión: TryDispose en la clase proxy para su uso por parte de otros. –
@ Moby's Stunt Double: ¿puede compartir su código? – RichardHowells