No puedo negar el beneficio de rendimiento de una llamada asíncrona dúplex, pero algunas cosas me hacen sentir cauteloso.Práctica recomendada para el cliente WCF Duplex
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 me puede decir si esta 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 de acceso virtual anterior está reservado cómo puede ser descartada. Quiero que la vida útil del servicio al cliente sea bastante corta. IE realiza una solicitud y recibe una respuesta, y cuando termine de recibirla, mátala. Qué tan grave es la penalización del rendimiento al hacer que el servicio al cliente sea corto en comparación con agruparlo y mantenerlo con vida por más tiempo.
La idea es evitar el problema del tiempo de espera. Cuando termine de recibir, enviar, desechar lo antes posible. Por convención: no puede pasar los servicios del cliente. Si necesita información, cree una nueva, simple, como EF/L2S, etc.
Desde dentro del servicio WCF, ¿cómo puedo matar 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 se termine programáticamente cuando se cumplan ciertas condiciones.
Puedo fijar el puerto y reenviar en consecuencia para resolver cualquier problema del firewall, pero lo que me preocupa es si el cliente se sentara detrás de un equilibrador de carga. ¿Cómo sabría el servicio qué servidor particular llamar?
¿Es esta respuesta verdadera para NetTcpBinding o simplemente para el enlace Dual Http? – Yaniv