Tengo una aplicación que reutiliza el mismo canal WCF una y otra vez. Mantengo una referencia estática a través de un objeto de fábrica. Me pregunto si esta es una buena práctica o si debo abrir x canales y hacer un ciclo completo de todas las llamadas de servicios a través de estos canales en lugar de usar un solo canal.Funcionamiento único del canal WCF frente a canales múltiples
¿Estas llamadas a los servicios se ponen en cola si se usa solo 1 canal o sucede lo mismo cuando usaría x canales?
Así que aferrarse al ICommunicationObject devuelto por _channelFactory.CreateChannel() no es una buena idea? Ahora mantengo 1 canal abierto para todas las solicitudes, no hago un _channelFactory.CreateChannel() para cada llamada, reutilizo el estático creado la primera vez. –
@Bjorn Bailleul, no es una buena idea en absoluto. Las instancias devueltas por '_channelFactory.CreateChannel()' deben vivir lo más breve posible y nunca volver a utilizarse. Como dije, la llamada 'CreateChannel' no es costosa. Es muy rápido. Puede llamarlo para cada solicitud. Lo que es costoso es la creación de la fábrica de canales. Esto es lo que podrías almacenar en caché. –
@Darin - ¿Tiene referencia o enlace para "utilizar un canal diferente para cada llamada". Este blog es uno de los artículos más referenciados sobre fábricas de canales y su primera mejor práctica es "Reutilizar el mismo proxy": http://blogs.msdn.com/b/wenlong/archive/2007/10/27/performance -improvement-of-wcf-client-proxy-creation-and-best-practices.aspx – ErnieL