WCF断开连接后释放资源

WCF服务端短时间内连接了超过400个客户端,再有新的连接请求则不再接收,报错1min连接超时。

解决思路是不用的连接,释放掉,不要占用资源。

释放的方法如下,

 var deathService = m_Service  as ICommunicationObject;
                    try
                    {
                        deathService.Close();
                    }
                    catch (System.ServiceModel.CommunicationException)
                    {
                        deathService.Abort();
                    }
                    catch (TimeoutException)
                    {
                        deathService.Abort();
                    }
                    catch (Exception)
                    {
                        deathService.Abort();
                    }

 ICommunicationObject的接口释放连接资源,所有的客户端对象都实现了ICommunicationObject接口。

m_Service  是继承wcf服务接口,并且建立连接的对象,客户端用来与服务端沟通的东西。

使用场景:

1,是客户端主动知道自己已经不需要与服务端对话了,直接进行释放。

2,客户端不知道自己是不是还需要与服务端会话,这就需要服务端通过回调来告诉客户端,客户端在释放。

3,客户端想要服务端保持一个长连接,这个可以使用心跳包来实现,在心跳包中去实现释放。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值