/// <summary> /// 卸载连接 /// </summary> public static void UnConnection() { if (AppGlobal.cache.GetData("WCFClientID") == null) { return; } bool b = false; string mClientID = AppGlobal.cache.GetData("WCFClientID").ToString(); IWCFHandlerService mWcfService = AppGlobal.cache.GetData("WCFService") as IWCFHandlerService; if (mClientID != null) { using (var scope = new OperationContextScope(mWcfService as IContextChannel)) { try { var router = System.ServiceModel.Channels.MessageHeader.CreateHeader("routerID", "http://www.efwplus.cn/", AppGlobal.cache.GetData("routerID").ToString()); OperationContext.Current.OutgoingMessageHeaders.Add(router); var cmd = System.ServiceModel.Channels.MessageHeader.CreateHeader("CMD", "http://www.efwplus.cn/", "Quit"); OperationContext.Current.OutgoingMessageHeaders.Add(cmd); b = mWcfService.UnDomain(mClientID); } catch { } } } }
/// <summary> /// 卸载连接 /// </summary> public void UnConnection() { if (mConn == null) { return; } string mClientID = mConn.ClientID; IWCFHandlerService mWcfService = mConn.WcfService; if (mClientID != null) { try { AddMessageHeader(mWcfService as IContextChannel, "Quit", (() => { mWcfService.UnDomain(mClientID); })); //mChannelFactory.Close();//关闭通道 (mWcfService as IContextChannel).Close(); if (timer != null)//关闭连接必须停止心跳 { timer.Stop(); } } catch { if ((mWcfService as IContextChannel) != null) { (mWcfService as IContextChannel).Abort(); } } mConn = null; } }