2012-08-16 18 views
0

说我们在客户端应用程序下面的类:WCF服务 - 如果WCF客户端/通道没有明确关闭,会发生什么?

public class TestClass 
{ 
    public void CallWCFService() 
    { 
     WCFClient svcClient = new WCFClient("endpointName"); 

     var x = svcClient.GetFoo(); 

     // no Close() or Abort() method here...  
    } 
} 

如果我从一个不同的类中创建的TestClass一个实例,并调用它的CallWCFService()方法会发生什么?

有没有垃圾回收照顾svcClient的?

这是否意味着服务主机具有不可用的通道,直到svcClient郁郁而终不知何故?

回答

0

是直到会话(如果有的话)达到,你将有一个挂起的连接,这取决于你的服务是如何配置的,通常驱动器,以重大问题

+0

那是肯定的垃圾收集关闭通道超时或对于具有不可用频道的服务是肯定的,直到客户频道死亡? – IWriteApps 2012-08-16 16:41:06

+0

是肯定对他们俩的,如果你有一个会话的垃圾收集器将采取代理的护理,但只是当会话超时,所以你有一个连接活着,并在服务不可用 – MaRuf 2012-08-16 20:01:42