public SmcErr Connect(out string sessionID)
{
SmcErr err = new CgwError();
NLogEx.LoggerEx logEx = new NLogEx.LoggerEx(log);
sessionID = "";
if (isLoadSuccess == false)
{
err.SetErrorNo(CgwError.ERR_CGW_IS_LOADING);
return err;
}
//获取SessionManage中Session个数
if (SessionManage.Instance().GetSessionsCount() == 0)
{
Guid sessionGuid = Guid.NewGuid();
sessionID = OperationContext.Current.SessionId;
currentSessionID = sessionID;
//保存至CGW的session管理中
CgwSession CgwSession = new CgwSession(sessionGuid, OperationContext.Current.SessionId);
MessageProperties properties = OperationContext.Current.IncomingMessageProperties; //获取传进的消息属性
RemoteEndpointMessageProperty endpoint = properties[RemoteEndpointMessageProperty.Name] as RemoteEndpointMessageProperty; //获取消息发送的远程终结点IP和端口
if (endpoint != null)
{
CgwConst.ClientIp = endpoint.Address; // 获取发送消息的客户端的 IP 地址。
logEx.Info("Client Connect MonitorManageService Successful,Current.Client IP is : {0}", CgwConst.ClientIp);
}
else
{
logEx.Info("Client Connect MonitorManageService Successful,Current.Client IP is null.");
}
}
else
{
err.SetErrorNo(CgwError.ERR_CGW_BUSINESS_SESSION_COUNT_MAX);
logEx.Warn("Session Count is Top Of Max number !");
}
return err;
}