示例#1
0
 /// <summary>
 /// 上报信息到U上商侣,可选是否发送短信给管理员
 /// </summary>
 /// <param name="msg"></param>
 /// <param name="sendSms"></param>
 public static void UploadNotice(string msg, bool sendSms)
 {
     try
     {
         string sendMsg = string.Format("msg={0}&sendSms={1}&key={2}", msg, sendSms.ToString().ToLower(), "ab123456ab");
         string result  = SysHelp.HttpPost("https://api.iusung.com/api/app/ExceptionLog/CreateSysNoticeLog", sendMsg);
         SysLog.CreateTextLog(LogType.error, string.Format("上报信息至U上商侣,反馈结果为:[{0}]", result));
     }
     catch (Exception e) {
         SysLog.CreateTextLog(LogType.error, string.Format("上报信息至U上商侣,反馈结果为:[{0}]", e.Message));
     }
 }
示例#2
0
 /// <summary>
 /// 执行
 /// </summary>
 public void Run()
 {
     try
     {
         WebClient     webClient = new WebClient();
         string        fileUrl   = this.Host + fileName;
         string        savePath  = "D:\\OfficeLog\\temp";
         DirectoryInfo sd        = new DirectoryInfo(savePath);
         if (!sd.Exists)
         {
             sd.Create();
         }
         string   filePath = savePath + "\\test_" + this.SaveFileName + ".txt";
         FileInfo file     = new FileInfo(filePath);
         if (file.Exists)
         {
             file.Delete();
         }
         webClient.DownloadFile(fileUrl, filePath);
         SysLog.CreateTextLog(LogType.runing, string.Format("Download file from [{0}] is success", fileUrl));
         if (IsSendMsg)
         {
             //曾经发送过错误报告,发送已修复报告
             //UshangService.UploadNotice(string.Format("U上商侣图片已经可正常通过 {0} 进行访问", this.Host), true);
         }
         ErrorCount = 0;
         IsSendMsg  = false;
     }
     catch (Exception e)
     {
         ErrorCount = ErrorCount + 1;
         //记录到错误日志
         SysLog.CreateTextLog(LogType.error, string.Format("Download file from [{0}] is fail,Error message is [{1}],ErrorCount is {2}", this.Host, e.Message, ErrorCount));
         if (!IsSendMsg)
         {
             //没有发送错误报告-检查错误计数器
             if (ErrorCount > ErrorCountMax)
             {
                 IsSendMsg = true;
                 //UshangService.UploadNotice(string.Format("发现U上商侣图片无法从 {0} 进行访问,错误提示:{1}", this.Host, e.Message
                 //    ), true);
             }
         }
     }
 }
示例#3
0
        /// <summary>
        /// 执行
        /// </summary>
        public void Run()
        {
            try
            {
                //变更为PING 11次 间隔1秒

                int           eC        = 0;
                int           sC        = 0;
                bool          isSuccess = false;
                List <string> eCString  = new List <string>();
                for (int i = 0; i < 11; i++)
                {
                    Ping p  = new Ping();
                    var  rR = p.Send(HOST);
                    if (rR.Status == IPStatus.Success)
                    {
                        sC = sC + 1;
                    }
                    else
                    {
                        eC = eC + 1;
                        eCString.Add(rR.Status.ToString());
                    }
                    Thread.Sleep(1000);
                }

                if (eC > sC)
                {
                    //错误比正确多
                }
                else
                {
                    //正确比错误多
                    isSuccess = true;
                }

                string msg = string.Format("ping {0} result [Success time:{1},Error time:{2},error String List is: {3}]", HOST, sC, eC, eCString.Count > 0 ? string.Join(",", eCString) : "none");
                if (isSuccess)
                {
                    //成功,写入日志。
                    SysLog.CreateTextLog(LogType.runing, msg);
                    if (IsSendMsg == true)
                    {
                        //曾经发送过错误报告现在恢复了,则发送恢复通知
                        SysLog.CreateTextLog(LogType.error, "错误已恢复");
                        UshangService.UploadNotice("成都公司电话交换机故障已恢复", true);
                    }
                    IsSendMsg        = false;
                    SendMsgTime      = null;
                    FirstSendMsgTime = null;
                    ErrorCount       = 0;
                }
                else
                {
                    ErrorCount = ErrorCount + 1;
                    //其他情况,写入错误日志以及发起通知等操作
                    SysLog.CreateTextLog(LogType.error, msg + string.Format(",error count is {0}", ErrorCount));
                    string postString = "发现成都公司电话交换机链接失败";
                    if (!IsSendMsg)
                    {
                        //没有发送错误报告,并且超过了错误累计的上限,立即发送错误报告
                        if (ErrorCount > ErrorCountMax)
                        {
                            SysLog.CreateTextLog(LogType.error, string.Format("错误已经连续{0}次发生,执行发送错误报告至U上商侣后台以及短信通知管理员", ErrorCount));
                            IsSendMsg        = true;
                            SendMsgTime      = DateTime.Now;
                            FirstSendMsgTime = DateTime.Now;
                            UshangService.UploadNotice(postString, true);
                        }
                    }
                    else
                    {
                        if (SendMsgTime.Value.AddMinutes(SendMsgTimeInterval) <= DateTime.Now)
                        {
                            //如果当前日期已经超过了发送错误报告加上间隙分钟,则重复发送错误报告,并更新错误报告发送时间
                            postString = postString + string.Format(",错误还未解决,距离上次发送错误报告已过去了{0}分钟,距离该错误发生已经过去了{1}分钟", SendMsgTimeInterval, (DateTime.Now - FirstSendMsgTime.Value).TotalMinutes.ToString("0"));
                            SysLog.CreateTextLog(LogType.error, postString);
                            SendMsgTime = DateTime.Now;
                            UshangService.UploadNotice(postString, true);
                        }
                        else
                        {
                            //如果在间隙时间内,则不发送任何错误报告
                            SysLog.CreateTextLog(LogType.warning, string.Format("{0},错误还在继续,但应间隔时间未到,不上报错误", msg));
                        }
                    }
                }
            }
            catch (Exception e) {
                SysLog.CreateTextLog(LogType.error, e.Message);
                SysLog.CreateTextLog(LogType.error, e.StackTrace);
            }
        }