considere el siguiente código pasa lo que es de los muchos ejemplos ChannelFactory:ChannelFactory.Close VS IClientChannel.Close
WSHttpBinding myBinding = new WSHttpBinding();
EndpointAddress myEndpoint = new EndpointAddress(
ConfigurationSettings.AppSettings["HelloWorldServiceURL"]);
ChannelFactory<IHelloWorldService> myChannelFactory =
new ChannelFactory<IHelloWorldService>(myBinding, myEndpoint);
IHelloWorldService proxy = myChannelFactory.CreateChannel();
((IClientChannel)proxy).Open();
HelloWorldDataContract dc = proxy.SayHello();
((IClientChannel)proxy).Close();
Tenga en cuenta que cuando se llama proxy.Open(), tanto el estado del canal y el estado del ChannelFactory convertirse "Abrió". Cuando se invoca proxy.Close(), el estado del canal se "cierra", pero el estado de ChannelFactory permanece "Abierto".
¿Debería estar uno cerrando ChannelFactory también? No parece ver esto en muchos ejemplos. Además, si es posible, explique la diferencia entre tener un canal abierto o abrir una fábrica de canales.
Además, soy consciente del IDisposable issue, por lo que probablemente se puede ignorar por el bien de esta pregunta a menos que tenga un impacto directo en la respuesta.
encontré su respuesta inexacta cuando dice 'Si ya está utilizando la fábrica para crear canales, no hay ninguna razón para no cerrar it'. Fallará si lo hace - vea mi respuesta. – Aliostad