public OpRes reqSendMail(ParamSendMailFullSvr param)
    {
        int state = getRemoteServerState(0);

        if (state == StateMgr.state_closed)
        {
            return(OpRes.op_res_export_excel_not_open);
        }

        try
        {
            ServersEngine e       = m_serversEngines[0];
            int           retCode = e.reqService(param, ServiceType.serviceTypeSendMail);

            if (retCode == (int)RetCodeRemote.ret_error)
            {
                return(OpRes.op_res_failed);
            }

            if (retCode == (int)RetCodeRemote.ret_busy)
            {
                return(OpRes.op_res_export_service_busy);
            }

            return(OpRes.opres_success);
        }
        catch (System.Exception ex)
        {
        }
        return(OpRes.op_res_failed);
    }
    // 初始化
    public void init()
    {
        string exportIP   = WebConfigurationManager.AppSettings["exportIP"];
        int    exportPort = Convert.ToInt32(WebConfigurationManager.AppSettings["exportPort"]);

        TcpChannel channel = new TcpChannel();

        ChannelServices.RegisterChannel(channel, false);

        string        str = string.Format("tcp://{0}:{1}/ServersEngine", exportIP, exportPort);
        ServersEngine obj = (ServersEngine)Activator.GetObject(typeof(ServersEngine), str);

        m_serversEngines.Add(0, obj);
    }
    // 返回远程服务状态
    public int getRemoteServerState(int remoteId)
    {
        if (!m_serversEngines.ContainsKey(remoteId))
        {
            return(StateMgr.state_unknown);
        }

        try
        {
            ServersEngine e = m_serversEngines[remoteId];
            e.testRemoteServer();
            return(StateMgr.state_running);
        }
        catch (System.Exception ex)
        {
        }
        return(StateMgr.state_closed);
    }
    public OpRes reqExportExcel(ExportParam param)
    {
        int state = getRemoteServerState(0);

        if (state == StateMgr.state_closed)
        {
            return(OpRes.op_res_export_excel_not_open);
        }

        ServersEngine e       = m_serversEngines[0];
        int           retCode = e.reqService(param, ServiceType.serviceTypeExportExcel);

        if (retCode == (int)RetCodeRemote.ret_error)
        {
            return(OpRes.op_res_failed);
        }

        if (retCode == (int)RetCodeRemote.ret_busy)
        {
            return(OpRes.op_res_export_service_busy);
        }

        return(OpRes.op_res_has_commit_export);
    }