示例#1
0
 /// <summary>
 /// 警告
 /// </summary>
 /// <param name="msg">警告信息字符串</param>
 public void Warn(string msg, LogTyper lt = LogTyper.LogLogger)
 {
     if (m_Loglevel >= 3)
     {
         ILog log = log4.Find(x => x.Logger.Name == lt.ToString());
         if (log != null)
         {
             log.Warn(msg);
         }
     }
 }
示例#2
0
 /// <summary>
 /// 信息
 /// </summary>
 /// <param name="msg">信息字符串</param>
 public void Success(string msg, LogTyper lt = LogTyper.LogLogger)
 {
     if (m_Loglevel >= 4)
     {
         ILog log = log4.Find(x => x.Logger.Name == lt.ToString());
         if (log != null)
         {
             log.Info(msg);
         }
     }
 }
示例#3
0
 /// <summary>
 /// 调试
 /// </summary>
 /// <param name="msg">错误信息对象</param>
 public void Debug(object msg, LogTyper lt = LogTyper.LogLogger)
 {
     if (m_Loglevel >= 5)
     {
         ILog log = log4.Find(x => x.Logger.Name == lt.ToString());
         if (log != null)
         {
             log.Debug(msg);
         }
     }
 }
示例#4
0
        public static Tuple <int, string> m_fTestSFTP(LogTyper lt = LogTyper.LogLogger)
        {
            int    status = 0;
            string msg    = string.Empty;

            try
            {
                ///链接(S)FTP
                SessionOptions sessionOptions = new SessionOptions();
                sessionOptions.Protocol   = (Protocol)(int.Parse(m_cConfigConstants.m_sProtocol));
                sessionOptions.HostName   = m_cConfigConstants.m_sIP;
                sessionOptions.PortNumber = int.Parse(m_cConfigConstants.m_sPort);
                sessionOptions.UserName   = m_cConfigConstants.m_sUa;
                sessionOptions.FtpMode    = (FtpMode)(int.Parse(m_cConfigConstants.m_sMode));
                if (!string.IsNullOrWhiteSpace(m_cConfigConstants.m_sPwd))
                {
                    sessionOptions.Password = m_cConfigConstants.m_sPwd;
                }
                if (!string.IsNullOrWhiteSpace(m_cConfigConstants.m_sKey))
                {
                    sessionOptions.SshHostKeyFingerprint = m_cConfigConstants.m_sKey;
                }

                ///放入测试
                using (WinSCP.Session session = new WinSCP.Session())
                {
                    session.Open(sessionOptions);

                    status = 0;
                    msg    = "(S)FTP测试链接成功";
                }
            }
            catch (Exception ex)
            {
                status = 1;
                msg    = ex.Message;

                object m_oObject = new
                {
                    title = "(S)FTP测试",
                    ex    = ex
                };

                Log.Instance.Debug(m_oObject);
            }
            return(new Tuple <int, string>(status, msg));
        }
示例#5
0
        public static string m_fGet(string url, string param, LogTyper lt = LogTyper.LogLogger)
        {
            try
            {
                HttpWebRequest get = WebRequest.Create($"{url}{(string.IsNullOrWhiteSpace(param) ? "" : $"?{param}")}") as HttpWebRequest;
                //get.UserAgent = userAgent;
                get.Method      = "GET";                               //提交方式
                get.ContentType = "application/x-www-form-urlencoded"; //内容类型
                get.Accept      = "*/*";

                //改为动态
                get.Timeout = m_cConfigConstants.m_uHttpTimeout * 1000;

                HttpWebResponse response         = (HttpWebResponse)get.GetResponse();
                Stream          myResponseStream = response.GetResponseStream();
                StreamReader    myStreamReader   = new StreamReader(myResponseStream, Encoding.GetEncoding(m_cConfigConstants.SYSTEM_ENCODING));
                string          retString        = myStreamReader.ReadToEnd();
                myStreamReader.Close();
                myResponseStream.Close();
                return(retString);
            }
示例#6
0
        //单线程即可
        public static Tuple <int, string> m_fSendFile(m_cRecModel m_mRecModel, string m_sRemoteDirectory, bool m_bTest, LogTyper lt = LogTyper.LogLogger)
        {
            int    status = 0;
            string msg    = string.Empty;

            try
            {
                ///链接(S)FTP
                SessionOptions sessionOptions = new SessionOptions();
                sessionOptions.Protocol   = (Protocol)(int.Parse(m_cConfigConstants.m_sProtocol));
                sessionOptions.HostName   = m_cConfigConstants.m_sIP;
                sessionOptions.PortNumber = int.Parse(m_cConfigConstants.m_sPort);
                sessionOptions.UserName   = m_cConfigConstants.m_sUa;
                sessionOptions.FtpMode    = (FtpMode)(int.Parse(m_cConfigConstants.m_sMode));
                if (!string.IsNullOrWhiteSpace(m_cConfigConstants.m_sPwd))
                {
                    sessionOptions.Password = m_cConfigConstants.m_sPwd;
                }
                if (!string.IsNullOrWhiteSpace(m_cConfigConstants.m_sKey))
                {
                    sessionOptions.SshHostKeyFingerprint = m_cConfigConstants.m_sKey;
                }

                ///放入测试
                using (WinSCP.Session session = new WinSCP.Session())
                {
                    session.Open(sessionOptions);

                    TransferEventArgs transferEventArgs;
                    TransferOptions   transferOptions = new TransferOptions();
                    transferOptions.TransferMode = TransferMode.Binary;

                    //是否需要创建文件夹,逐级创建
                    if (!string.IsNullOrWhiteSpace(m_sRemoteDirectory) && !session.FileExists(RemotePath.EscapeFileMask(m_sRemoteDirectory)))
                    {
                        //查找出所有目录
                        string[] m_lDirectory  = m_sRemoteDirectory.Split('/');
                        string   m_sPrefixMulu = string.Empty;

                        foreach (string m_sMulu in m_lDirectory)
                        {
                            if (!string.IsNullOrWhiteSpace(m_sMulu))
                            {
                                m_sPrefixMulu += $"/{m_sMulu}";
                                if (!session.FileExists(RemotePath.EscapeFileMask(m_sPrefixMulu)))
                                {
                                    session.CreateDirectory(RemotePath.EscapeFileMask(m_sPrefixMulu));

                                    Log.Instance.Debug($"逐级创建(S)FTP目录:“{m_sPrefixMulu}”", lt);
                                }
                            }
                        }
                    }

                    //判断文件是否已经上传
                    if (!session.FileExists(RemotePath.EscapeFileMask($"{m_sRemoteDirectory}/{System.IO.Path.GetFileName(m_mRecModel.mimiFile)}")))
                    {
                        //如果为测试,文件不进行删除
                        transferEventArgs = session.PutFileToDirectory(m_mRecModel.mimiFile, RemotePath.EscapeFileMask(m_sRemoteDirectory), !m_bTest, transferOptions);

                        string m_sErrMsg = string.Join(",", transferEventArgs?.Error?.Message);
                        if (!string.IsNullOrWhiteSpace(m_sErrMsg))
                        {
                            Log.Instance.Debug(m_sErrMsg, lt);
                            status = 1;
                            msg    = m_sErrMsg;
                        }
                        else
                        {
                            status = 0;
                            msg    = "录音上传(S)FTP成功";
                        }
                    }
                    else
                    {
                        status = 0;
                        msg    = "录音已存在,略过上传(S)FTP";

                        if (!m_bTest)
                        {
                            Log.Instance.Debug($"{m_mRecModel.Id}:“{msg}”", lt);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                status = 1;
                msg    = ex.Message;

                //如果有误
                if (!m_bTest)
                {
                    m_cSQL.m_fSetActionState(m_mRecModel.Id, "3", $"上传(S)FTP错误:{msg}", lt);
                }

                //打印一下错误,处理一下此处导致计划任务无法继续的问题
                Log.Instance.Debug(ex, lt);
            }
            return(new Tuple <int, string>(status, msg));
        }