La mejor práctica para el cliente WCF Duplex

No puedo negar el beneficio de rendimiento de una llamada asíncrona dúplex, pero algunas cosas me hacen sentir cauteloso.

Mi preocupación es que dado un objeto de cliente instanciado, ¿WCF podrá decir qué instancia de servicio de cliente particular recibirá el argumento de devolución de llamada?

¿Alguien puede decirme si es una buena idea? ¿Si no, porque no

new DuplexChannelFactory<IServerWithCallback>(
   new ClientService(), 
   new NetTcpBinding(), 
   new EndpointAddress("net.tcp://localhost:1234/"+Guid.NewGuid()))

Si la ruta virtual anterior está reservada, ¿cómo se puede descartar? Quiero que la vida útil del servicio al cliente sea bastante corta. IE hace una solicitud y recibe una respuesta y cuando termine de recibir, elimínela. ¿Qué tan mala es la penalización de rendimiento al acortar la vida útil del servicio al cliente en lugar de agruparlo y mantenerlo vivo durante más tiempo?

La idea es evitar el problema del tiempo de espera. Cuando termine de recibir, enviar, deseche lo antes posible. Por convención: no se pueden pasar los servicios al cliente. Si necesita información, cree una nueva, simple, como EF / L2S, etc.

Desde el propio servicio WCF, ¿cómo elimino la sesión con el cliente? es decir. No quiero que el cliente finalice la sesión: sé que puedo decorar mi operación en consecuencia, pero quiero que el servicio finalice mediante programación cuando se cumplan ciertas condiciones.

Puedo fijar el puerto y reenviar en consecuencia para resolver cualquier problema de firewall, pero lo que me preocupa es si el cliente se sentará detrás de un equilibrador de carga. ¿Cómo sabría el servicio a qué servidor en particular llamar?

Respuestas a la pregunta(4)

Su respuesta a la pregunta