public void 发送OA邮件(异常信息对象 异常对象, List <个人> 管理员) { foreach (个人 per in 管理员) { this.发送OA邮件(异常对象, per.邮件地址); } }
protected void grid_OnCustomButtonCallback(object sender, ASPxGridViewCustomButtonCallbackEventArgs e) { if (e.ButtonID != "btnPigeonhole") { return; } if (!AuthUser.IsSystemAdmin) { throw new Exception("您不是系统管理员,不能进行归档操作!"); } else { 错误消息服务 异常服务对象 = new 错误消息服务(); 异常信息对象 异常消息 = 异常服务对象.获得错误消息_异常编码(new Guid(grid.GetRowValues(e.VisibleIndex, "异常编码").ToString())); try { AuditServcie auditService = new AuditServcie(); auditService.ExceptionPigeonhole(new Guid(异常消息.消息编码.ToString())); } catch (Exception) { throw new Exception("归档操作失败!"); } 异常服务对象.除错误消息_异常编码(异常消息.异常编码); grid.DataBind(); } }
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 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 Guid 添加异常信息(异常信息对象 异常对象) { Guid newId = Guid.NewGuid(); try { 异常对象.异常编码 = newId; execptionDC.异常信息对象.InsertOnSubmit(异常对象); execptionDC.SubmitChanges(System.Data.Linq.ConflictMode.ContinueOnConflict); } catch { newId = Guid.Empty; } return(newId); }
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 string GetBindingReqBody(string exceptionID) { string retBody = "ExceptionID为空,无法寻找请求消息体!"; if (!(String.IsNullOrEmpty(exceptionID))) { 错误消息服务 异常服务对象 = new 错误消息服务(); 异常信息对象 异常消息 = 异常服务对象.获得错误消息_异常编码(new Guid(exceptionID)); //String msgBody = 异常服务对象.获得错误消息内容(new Guid(exceptionID)); XmlDocument doc = new XmlDocument(); if (!(String.IsNullOrEmpty(异常消息.请求消息体))) { try { doc.LoadXml(异常消息.请求消息体); XmlNodeList list = doc.GetElementsByTagName("消息内容"); if (list.Count > 0) { String msgContent = list[0].InnerText; if (msgContent.Length > 1024000) { retBody = msgContent.Substring(0, 1024000) + "(剩余数据隐藏)"; } else { retBody = msgContent; } } else { retBody = 异常消息.请求消息体; } } catch { retBody = 异常消息.请求消息体; } } else { retBody = "请求消息体为空!"; } } return(retBody); }
protected void OdsException_OnUpdating(object sender, ObjectDataSourceMethodEventArgs e) { Guid ExceptionID = (Guid)e.InputParameters["异常编码"]; 错误消息服务 异常服务对象 = new 错误消息服务(); 异常信息对象 异常消息 = 异常服务对象.获得错误消息_异常编码(ExceptionID); 注册服务目录服务 目录服务 = new 注册服务目录服务(); 务地址 serviceAddress = 目录服务.获得绑定信息_服务地址编码(new Guid(异常消息.绑定地址编码.Value.ToString())); 务请求 req = new 务请求(); req.主机名称 = this.Server.MachineName; req.务名称 = 目录服务.获得具体服务_绑定信息(serviceAddress).务名称.Trim(); req.方法名称 = 异常消息.方法名称.Trim(); req.消息内容 = GetRequestMessage(异常服务对象.获得错误消息内容(ExceptionID)); req.请求时间 = System.DateTime.Now; req.密码 = 异常消息.请求密码; //if ( string.IsNullOrEmpty(req.消息内容) ) //{ // throw new Exception("重发没有成功:消息内容为空!"); //} //req.错误消息编码 = ExceptionID.ToString(); try { //Core_Service_Bus_ReProcessBus_ReProcessPort 重发端口 = new Core_Service_Bus_ReProcessBus_ReProcessPort(); //重发端口.ReceiveRequest(req); Core_Service_Bus_OnewayMainBus_OneWayReceive port = new Core_Service_Bus_OnewayMainBus_OneWayReceive(); port.ReceiveRequest(req); } catch {} try { AuditServcie auditService = new AuditServcie(); auditService.ExceptionResend(new Guid(异常消息.消息编码.ToString()), new Guid(异常消息.绑定地址编码.ToString())); } catch (Exception ex) { throw new Exception("将审计库中的异常日志标记为重发时发生错误:" + ex.Message); } }
/// <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 static void 更新异常对象(异常信息对象 异常对象) { var 异常 = execptionDC.异常信息对象.Where(p => p.异常编码 == 异常对象.异常编码); foreach (var 异常单体 in 异常) { 异常单体.绑定地址编码 = 异常对象.绑定地址编码; 异常单体.消息编码 = 异常对象.消息编码; 异常单体.异常编码 = 异常对象.异常编码; 异常单体.异常代码 = 异常对象.异常代码; 异常单体.异常级别 = 异常对象.异常级别; 异常单体.异常类型 = 异常对象.异常类型; 异常单体.异常描述 = 异常对象.异常描述; 异常单体.异常时间 = 异常对象.异常时间; 异常单体.异常信息状态 = 异常对象.异常信息状态; 异常单体.主机名称 = 异常对象.主机名称; 异常单体.请求消息体 = 异常对象.请求消息体; 异常单体.方法名称 = 异常对象.方法名称; } execptionDC.SubmitChanges(); }
public void 创建错误消息(异常信息对象 异常对象) { ExceptionDataAccess.添加异常信息(异常对象); //throw new System.NotImplementedException(); }
public void 修改错误消息(异常信息对象 异常对象) { ExceptionDataAccess.更新异常对象(异常对象); }
public void 错误消息处理(异常信息对象 异常对象, 异常结果 处理结果) { 异常对象.异常信息状态 = (int)处理结果; ExceptionDataAccess.更新异常对象(异常对象); //throw new System.NotImplementedException(); }
/// <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 错误消息处理(异常信息对象 异常对象,异常结果 处理结果) { 异常对象.异常信息状态 = (int)处理结果; ExceptionDataAccess.更新异常对象(异常对象); //throw new System.NotImplementedException(); }
public void 发送OA邮件(异常信息对象 异常对象, List<个人> 管理员) { foreach (个人 per in 管理员) { this.发送OA邮件(异常对象, per.邮件地址); } }
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; }