WCF客户端连接问题

Geo*_*ge2 2 .net c# wcf wcf-client

我正在使用VSTS2008 + C#+ .Net 3.5来开发IIS中托管的WCF服务.然后,我使用VSTS 2008中的"添加服务引用"功能自动生成客户端代理代码.

我的问题是,假设我创建了一个客户端代理实例,然后使用此特定实例来调用服务器端WCF服务公开的各种方法.那么,每次我进行方法调用时都会建立一个新连接吗?或者客户端和服务器之间会有一个持续的连接(即连接的生命周期是从创建客户端代理实例到处理客户端代理实例)?

我正在使用basicHttpBinding.

blo*_*art 5

当底层通道关闭时,连接将被关闭 - 默认情况下,BasicHttpBinding在具有Keep-Alive值的消息中发送连接HTTP头,这使客户端能够建立与支持它们的服务的持久连接.

这并不意味着服务实例保持活动,只是与Web服务器的连接,如果Web服务器支持它.

如果要在每次调用后关闭连接,则可以通过定义自定义绑定在服务器端将其关闭

<services> 
 <service>
  <endpoint address=""
        binding="customBinding"
        bindingConfiguration="HttpBinding" 
        contract="IContract" />
 </service>
</services>

<bindings>
 <customBinding>
   <binding name="HttpBinding" keepAliveEnabled="False"/>
 </customBinding>
</bindings>
Run Code Online (Sandbox Code Playgroud)

连接将根据代理挂起的时间关闭,生成的代理将在需要时再次重新打开它.