public void 添加错误消息(String 异常描述, String 异常代码, String 异常信息, int 异常级别, int 异常类型, String 主机名称, String 方法名称, String 消息编码, String 绑定地址编码, int 异常信息状态, String 请求消息体, int 请求类型, String 请求密码, int 绑定类型) { //bool isAddOk = true; 错误消息处理逻辑 错误逻辑 = new 错误消息处理逻辑(); 异常信息对象 异常对象 = new 异常信息对象(); 异常对象.异常时间 = System.DateTime.Now; 异常对象.异常描述 = 异常描述.Trim(); 异常对象.异常代码 = 异常代码.Trim(); 异常对象.异常信息 = 异常信息.Trim(); 异常对象.异常级别 = 异常级别; 异常对象.异常类型 = 异常类型; 异常对象.主机名称 = 主机名称.Trim(); 异常对象.方法名称 = 方法名称.Trim(); 异常对象.请求密码 = 请求密码.Trim(); 异常对象.绑定类型 = 绑定类型; 异常对象.请求类型 = 请求类型; 异常对象.消息编码 = new Guid(消息编码); 异常对象.绑定地址编码 = new Guid(绑定地址编码); 异常对象.异常信息状态 = 异常信息状态; 异常对象.请求消息体 = 请求消息体; XmlDocument document = new XmlDocument(); document.LoadXml(请求消息体); string serviceName = document.DocumentElement.SelectSingleNode("服务名称").InnerText.Trim(); string reqBeginTime = document.DocumentElement.SelectSingleNode("请求时间").InnerText.Trim(); //Audit.AuditServcie auditServcie = new JN.ESB.Exception.Service.Audit.AuditServcie(); //auditServcie.AddAuditBusiness(主机名称, 请求消息体, 消息编码, 方法名称, reqBeginTime, serviceName, 0); 服务目录业务逻辑 UDDI = new 服务目录业务逻辑(); List<个人> 系统管理员 = UDDI.获得系统管理员(); if ((String.IsNullOrEmpty(绑定地址编码.Trim()) || 绑定地址编码.Trim() == "00000000-0000-0000-0000-000000000000")) { if(UDDI.获得绑定信息_服务名称(serviceName)!=null){ 异常对象.绑定地址编码 = UDDI.获得绑定信息_服务名称(serviceName).服务地址编码; } } 错误逻辑.创建错误消息(异常对象); try { if (!(异常对象.绑定地址编码.Value == Guid.Empty)) { 服务地址 地址 = UDDI.获得绑定信息_服务地址编码(异常对象.绑定地址编码.Value); 个人 服务管理员 = UDDI.获得管理员_具体绑定服务(地址); if (!(系统管理员.Contains(服务管理员))) 系统管理员.Add(服务管理员); } this.发送OA邮件(异常对象, 系统管理员); } catch { } }
public static Guid 添加异常信息(异常信息对象 异常对象) { Guid newId = Guid.NewGuid(); try { 异常对象.异常编码 = newId; execptionDC.异常信息对象.InsertOnSubmit(异常对象); execptionDC.SubmitChanges(System.Data.Linq.ConflictMode.ContinueOnConflict); } catch { newId = Guid.Empty; } return newId; }
public static void 更新异常对象(异常信息对象 异常对象) { var 异常 = execptionDC.异常信息对象.Where(p => p.异常编码 == 异常对象.异常编码); foreach (var 异常单体 in 异常) { 异常单体.绑定地址编码 = 异常对象.绑定地址编码; 异常单体.消息编码 = 异常对象.消息编码; 异常单体.异常编码 = 异常对象.异常编码; 异常单体.异常代码 = 异常对象.异常代码; 异常单体.异常级别 = 异常对象.异常级别; 异常单体.异常类型 = 异常对象.异常类型; 异常单体.异常描述 = 异常对象.异常描述; 异常单体.异常时间 = 异常对象.异常时间; 异常单体.异常信息状态 = 异常对象.异常信息状态; 异常单体.主机名称 = 异常对象.主机名称; 异常单体.请求消息体 = 异常对象.请求消息体; 异常单体.方法名称 = 异常对象.方法名称; } execptionDC.SubmitChanges(); }
public bool 发送OA邮件(异常信息对象 异常对象, string 邮件地址) { string portalUrl = 获取门户地址(); //string portalUrl = "http://10.30.4.101/EsbPortal"; string detailLink = portalUrl + "/Exception/ResendRequestMsg.aspx?msgId=" + 异常对象.异常编码; return true; //OAMail.EmailService OA邮件服务 = new JN.ESB.Exception.Service.OAMail.EmailService(); //string message = String.Format("ESB服务有未成功的调用请求,请处理! <a href={0}>点击此处</a>查看详细信息", detailLink);//内容 //string result = OA邮件服务.SendEmaiToOA("administrator", 邮件地址, "ESB服务调用异常通知", message, ""); //if(result.Equals("1")) // return true; //else // return false; }
public void 发送OA邮件(异常信息对象 异常对象, List<个人> 管理员) { foreach (个人 per in 管理员) { this.发送OA邮件(异常对象, per.邮件地址); } }
/// <summary> /// 发生异常时,发送电子邮件通知服务管理员 /// </summary> /// <param name="异常对象">待发送的异常信息对象</param> /// <param name="邮件地址">收件人邮件地址,多个收件人用分号隔开</param> /// <returns></returns> public bool 发送电子邮件(异常信息对象 异常对象, string 邮件地址) { SmtpClient _smtpClient = new SmtpClient(); _smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;//指定电子邮件发送方式 _smtpClient.Host = "127.0.0.1"; //指定SMTP服务器 _smtpClient.Port = 25; _smtpClient.DeliveryMethod = SmtpDeliveryMethod.PickupDirectoryFromIis; string strFrom = "*****@*****.**"; string portalUrl = 获取门户地址(); string detailLink = portalUrl + "/Exception/ResendRequestMsg.aspx?msgId=" + 异常对象.异常编码; MailAddress from = new MailAddress(strFrom,"Esb管理员"); char[] sp = new char[]{';'}; string[] 管理员邮件地址 = 邮件地址.Trim().Split(sp); MailMessage _mailMessage = new MailMessage(); _mailMessage.From = from; for (int i=0;i<管理员邮件地址.Length;i++) { MailAddress to = new MailAddress(管理员邮件地址[i]); _mailMessage.To.Add(to); } _mailMessage.Subject = "服务调用异常通知";//主题 _mailMessage.IsBodyHtml = true;//设置为HTML格式 _mailMessage.BodyEncoding = System.Text.Encoding.Default;//正文编码 _mailMessage.Body = String.Format("ESB服务有未成功的调用请求,请处理! <a href={0}>点击此处</a>查看详细信息", detailLink);//内容 _mailMessage.Priority = MailPriority.High;//优先级 try { _smtpClient.Send(_mailMessage); return true; } catch(System.Exception e) { return false; } }
public void 修改错误消息(异常信息对象 异常对象) { ExceptionDataAccess.更新异常对象(异常对象); }
public void 错误消息处理(异常信息对象 异常对象,异常结果 处理结果) { 异常对象.异常信息状态 = (int)处理结果; ExceptionDataAccess.更新异常对象(异常对象); //throw new System.NotImplementedException(); }
public void 创建错误消息(异常信息对象 异常对象) { ExceptionDataAccess.添加异常信息(异常对象); //throw new System.NotImplementedException(); }