He puesto una instancia del proxy del cliente para el servicio WCF en una propiedad en la clase de la aplicación para que pueda obtenerla desde cualquier lugar de la aplicación.¿Cuándo cerrar el cliente de WCF?
No cierro el cliente, lo dejaré abierto mientras dure la aplicación. La razón principal de esto es que si tuviera que seguir // el comentario en la página mex de servicio WCF (la que obtiene si apunta un navegador a la URL del servicio WCF) dice // Siempre cierre el cliente. client.Close();
que está bien, excepto si llamo client.Close() justo después de hacer una llamada al método client.SomeAsync() entonces se cierra antes de que los resultados vuelvan. ¿Debería poner el cierre en el método Completed()? O debería olvidarme de cerrarlo, ya que una vez que está cerrado tengo que crear una nueva instancia del proxy del cliente (podría no guardarlo en la propiedad de la aplicación si ese es el caso.
gracias, Stephen
recuerde agregar try catch on close también porque close puede causar excepciones. http://msdn.microsoft.com/en-us/library/ms405496.aspx. Lo uso así intente { client.Close(); } catch { client.Abort(); } –
Tenga en cuenta que llamar a Dispose en ClientBase también dará como resultado que se llame a Close. –