Ejemplo n.º 1
0
 public void 发送OA邮件(异常信息对象 异常对象, List <个人> 管理员)
 {
     foreach (个人 per in 管理员)
     {
         this.发送OA邮件(异常对象, per.邮件地址);
     }
 }
Ejemplo n.º 2
0
    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();
        }
    }
Ejemplo n.º 3
0
        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 { }
        }
Ejemplo n.º 4
0
        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 { }
            
            
        }
Ejemplo n.º 5
0
 public static Guid 添加异常信息(异常信息对象 异常对象)
 {
     Guid newId = Guid.NewGuid();
     try
     {
         异常对象.异常编码 = newId;
         execptionDC.异常信息对象.InsertOnSubmit(异常对象);
         execptionDC.SubmitChanges(System.Data.Linq.ConflictMode.ContinueOnConflict);
     }
     catch
     {
         newId = Guid.Empty;
     }
     return newId;
 }
Ejemplo n.º 6
0
        public static Guid 添加异常信息(异常信息对象 异常对象)
        {
            Guid newId = Guid.NewGuid();

            try
            {
                异常对象.异常编码 = newId;
                execptionDC.异常信息对象.InsertOnSubmit(异常对象);
                execptionDC.SubmitChanges(System.Data.Linq.ConflictMode.ContinueOnConflict);
            }
            catch
            {
                newId = Guid.Empty;
            }
            return(newId);
        }
Ejemplo n.º 7
0
        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;
        }
Ejemplo n.º 8
0
    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);
    }
Ejemplo n.º 9
0
    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);
        }
    }
Ejemplo n.º 10
0
        /// <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);
            }
        }
Ejemplo n.º 11
0
        public static void 更新异常对象(异常信息对象 异常对象)
        {
            var 异常 = execptionDC.异常信息对象.Where(p => p.异常编码 == 异常对象.异常编码);

            foreach (var 异常单体 in 异常)
            {
                异常单体.绑定地址编码 = 异常对象.绑定地址编码;
                异常单体.消息编码   = 异常对象.消息编码;
                异常单体.异常编码   = 异常对象.异常编码;
                异常单体.异常代码   = 异常对象.异常代码;
                异常单体.异常级别   = 异常对象.异常级别;
                异常单体.异常类型   = 异常对象.异常类型;
                异常单体.异常描述   = 异常对象.异常描述;
                异常单体.异常时间   = 异常对象.异常时间;
                异常单体.异常信息状态 = 异常对象.异常信息状态;
                异常单体.主机名称   = 异常对象.主机名称;
                异常单体.请求消息体  = 异常对象.请求消息体;
                异常单体.方法名称   = 异常对象.方法名称;
            }
            execptionDC.SubmitChanges();
        }
Ejemplo n.º 12
0
        public static void 更新异常对象(异常信息对象 异常对象)
        {
            var 异常 = execptionDC.异常信息对象.Where(p => p.异常编码 == 异常对象.异常编码);
            foreach (var 异常单体 in 异常)
            {
                异常单体.绑定地址编码 = 异常对象.绑定地址编码;
                异常单体.消息编码 = 异常对象.消息编码;
                异常单体.异常编码 = 异常对象.异常编码;
                异常单体.异常代码 = 异常对象.异常代码;
                异常单体.异常级别 = 异常对象.异常级别;
                异常单体.异常类型 = 异常对象.异常类型;
                异常单体.异常描述 = 异常对象.异常描述;
                异常单体.异常时间 = 异常对象.异常时间;
                异常单体.异常信息状态 = 异常对象.异常信息状态;
                异常单体.主机名称 = 异常对象.主机名称;
                异常单体.请求消息体 = 异常对象.请求消息体;
                异常单体.方法名称 = 异常对象.方法名称;

            }
            execptionDC.SubmitChanges();
        }
Ejemplo n.º 13
0
 public void 创建错误消息(异常信息对象 异常对象)
 {
     ExceptionDataAccess.添加异常信息(异常对象);
     
     //throw new System.NotImplementedException();
 }
Ejemplo n.º 14
0
 public void 修改错误消息(异常信息对象 异常对象)
 {
     ExceptionDataAccess.更新异常对象(异常对象);
 }
Ejemplo n.º 15
0
 public void 修改错误消息(异常信息对象 异常对象)
 {
     ExceptionDataAccess.更新异常对象(异常对象);
 }
Ejemplo n.º 16
0
 public void 错误消息处理(异常信息对象 异常对象, 异常结果 处理结果)
 {
     异常对象.异常信息状态 = (int)处理结果;
     ExceptionDataAccess.更新异常对象(异常对象);
     //throw new System.NotImplementedException();
 }
Ejemplo n.º 17
0
        public void 创建错误消息(异常信息对象 异常对象)
        {
            ExceptionDataAccess.添加异常信息(异常对象);

            //throw new System.NotImplementedException();
        }
Ejemplo n.º 18
0
        /// <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;
            }

        }
Ejemplo n.º 19
0
 public void 错误消息处理(异常信息对象 异常对象,异常结果 处理结果)
 {
     异常对象.异常信息状态 = (int)处理结果;
     ExceptionDataAccess.更新异常对象(异常对象);
     //throw new System.NotImplementedException();
 }
Ejemplo n.º 20
0
 public void 发送OA邮件(异常信息对象 异常对象, List<个人> 管理员)
 {
     foreach (个人 per in 管理员)
     {
         this.发送OA邮件(异常对象, per.邮件地址);
     }
 }
Ejemplo n.º 21
0
        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;
        }