Geo*_*ge2 2 .net c# wcf wcf-client
我正在使用VSTS2008 + C#+ .Net 3.5来开发IIS中托管的WCF服务.然后,我使用VSTS 2008中的"添加服务引用"功能自动生成客户端代理代码.
我的问题是,假设我创建了一个客户端代理实例,然后使用此特定实例来调用服务器端WCF服务公开的各种方法.那么,每次我进行方法调用时都会建立一个新连接吗?或者客户端和服务器之间会有一个持续的连接(即连接的生命周期是从创建客户端代理实例到处理客户端代理实例)?
我正在使用basicHttpBinding.
当底层通道关闭时,连接将被关闭 - 默认情况下,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)
连接将根据代理挂起的时间关闭,生成的代理将在需要时再次重新打开它.