/// <summary> /// 释放连接 /// </summary> public void Dispose() { UnConnection(); try { if (baseServiceClient != null) { baseServiceClient.Close(); } if (fileServiceClient != null) { fileServiceClient.Close(); } } catch { if (baseServiceClient != null) { baseServiceClient.Abort(); } if (fileServiceClient != null) { fileServiceClient.Abort(); } } }
/// <summary> /// 卸载连接 /// </summary> public void UnConnection() { if (clientObj == null) { return; } string mClientID = clientObj.ClientID; DuplexBaseServiceClient mWcfService = clientObj.WcfService; if (mClientID != null) { try { AddMessageHeader(mWcfService.InnerDuplexChannel as IContextChannel, "Quit", (() => { mWcfService.UnClient(mClientID); })); //mChannelFactory.Close();//关闭通道 mWcfService.Close(); if (timer != null)//关闭连接必须停止心跳 { timer.Stop(); } } catch { if ((mWcfService as IDisposable) != null) { (mWcfService as IDisposable).Dispose(); } } clientObj = null; } }