Pregunta

Estoy tratando de lograr alguna forma de redirección de mensajes en .NET Remoting.texto alt http://i47.tinypic.com/wlt4y9.jpg

Como puede ver en la imagen, me gustaría que el cliente envíe un mensaje al proveedor (que es el único URI que el cliente tiene que conocer), que luego redirigirá esto a Host1. Aquí está la parte difícil; El proveedor realizará un seguimiento de qué anfitrión está vivo (al exponer un registro/no registro de método remoto a los hosts), en otras palabras, el proveedor debe poder cambiar dinámicamente a qué URI debería redirigir el mensaje.

He estado intentando resolver el problema creando un host en el proveedor al que el cliente envía mensajes y luego un cliente (en el proveedor) que implementa un proxy personalizado (heredando de RealProxy) que redirigirá los mensajes al host actualmente preferido. Sin embargo, sigo volviendo al problema de cambiar dinámicamente URI y tengo la sensación de que me estoy perdiendo una parte fácil, pero vital, que resolverá este problema sin convertirlo en un gran monstruo peludo.

¡Cualquier consejo/sugerencias será muy apreciado!

¿Fue útil?

Solución

Para referencia futura, estoy adoptando otro enfoque, simplificado, sobre esto. El proveedor se eliminará y, en su lugar, el cliente intentará acceder a Host1 directamente. En caso de una SocketException, que es lo que obtendrá cuando el host no responda, luego lo ponga en cuarentena durante x minutos e intente con el siguiente host. Si todos los hosts están inactivos, vuelva a retirar la excepción.

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