コード例 #1
0
 public void 发送OA邮件(异常信息对象 异常对象, List <个人> 管理员)
 {
     foreach (个人 per in 管理员)
     {
         this.发送OA邮件(异常对象, per.邮件地址);
     }
 }
コード例 #2
0
ファイル: ExceptionList.aspx.cs プロジェクト: BiYiTuan/soa
    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();
        }
    }
コード例 #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 { }
        }
コード例 #4
0
ファイル: 错误消息服务.asmx.cs プロジェクト: vebin/soa
        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 { }
            
            
        }
コード例 #5
0
ファイル: ExceptionDataAccess.cs プロジェクト: yhhno/soa
 public static Guid 添加异常信息(异常信息对象 异常对象)
 {
     Guid newId = Guid.NewGuid();
     try
     {
         异常对象.异常编码 = newId;
         execptionDC.异常信息对象.InsertOnSubmit(异常对象);
         execptionDC.SubmitChanges(System.Data.Linq.ConflictMode.ContinueOnConflict);
     }
     catch
     {
         newId = Guid.Empty;
     }
     return newId;
 }
コード例 #6
0
ファイル: ExceptionDataAccess.cs プロジェクト: rebider/soa
        public static Guid 添加异常信息(异常信息对象 异常对象)
        {
            Guid newId = Guid.NewGuid();

            try
            {
                异常对象.异常编码 = newId;
                execptionDC.异常信息对象.InsertOnSubmit(异常对象);
                execptionDC.SubmitChanges(System.Data.Linq.ConflictMode.ContinueOnConflict);
            }
            catch
            {
                newId = Guid.Empty;
            }
            return(newId);
        }
コード例 #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;
        }
コード例 #8
0
ファイル: ExceptionList.aspx.cs プロジェクト: BiYiTuan/soa
    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);
    }
コード例 #9
0
ファイル: ExceptionList.aspx.cs プロジェクト: BiYiTuan/soa
    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);
        }
    }
コード例 #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);
            }
        }
コード例 #11
0
ファイル: ExceptionDataAccess.cs プロジェクト: rebider/soa
        public static void 更新异常对象(异常信息对象 异常对象)
        {
            var 异常 = execptionDC.异常信息对象.Where(p => p.异常编码 == 异常对象.异常编码);

            foreach (var 异常单体 in 异常)
            {
                异常单体.绑定地址编码 = 异常对象.绑定地址编码;
                异常单体.消息编码   = 异常对象.消息编码;
                异常单体.异常编码   = 异常对象.异常编码;
                异常单体.异常代码   = 异常对象.异常代码;
                异常单体.异常级别   = 异常对象.异常级别;
                异常单体.异常类型   = 异常对象.异常类型;
                异常单体.异常描述   = 异常对象.异常描述;
                异常单体.异常时间   = 异常对象.异常时间;
                异常单体.异常信息状态 = 异常对象.异常信息状态;
                异常单体.主机名称   = 异常对象.主机名称;
                异常单体.请求消息体  = 异常对象.请求消息体;
                异常单体.方法名称   = 异常对象.方法名称;
            }
            execptionDC.SubmitChanges();
        }
コード例 #12
0
ファイル: ExceptionDataAccess.cs プロジェクト: yhhno/soa
        public static void 更新异常对象(异常信息对象 异常对象)
        {
            var 异常 = execptionDC.异常信息对象.Where(p => p.异常编码 == 异常对象.异常编码);
            foreach (var 异常单体 in 异常)
            {
                异常单体.绑定地址编码 = 异常对象.绑定地址编码;
                异常单体.消息编码 = 异常对象.消息编码;
                异常单体.异常编码 = 异常对象.异常编码;
                异常单体.异常代码 = 异常对象.异常代码;
                异常单体.异常级别 = 异常对象.异常级别;
                异常单体.异常类型 = 异常对象.异常类型;
                异常单体.异常描述 = 异常对象.异常描述;
                异常单体.异常时间 = 异常对象.异常时间;
                异常单体.异常信息状态 = 异常对象.异常信息状态;
                异常单体.主机名称 = 异常对象.主机名称;
                异常单体.请求消息体 = 异常对象.请求消息体;
                异常单体.方法名称 = 异常对象.方法名称;

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

            //throw new System.NotImplementedException();
        }
コード例 #18
0
ファイル: 错误消息服务.asmx.cs プロジェクト: vebin/soa
        /// <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;
            }

        }
コード例 #19
0
 public void 错误消息处理(异常信息对象 异常对象,异常结果 处理结果)
 {
     异常对象.异常信息状态 = (int)处理结果;
     ExceptionDataAccess.更新异常对象(异常对象);
     //throw new System.NotImplementedException();
 }
コード例 #20
0
ファイル: 错误消息服务.asmx.cs プロジェクト: vebin/soa
 public void 发送OA邮件(异常信息对象 异常对象, List<个人> 管理员)
 {
     foreach (个人 per in 管理员)
     {
         this.发送OA邮件(异常对象, per.邮件地址);
     }
 }
コード例 #21
0
ファイル: 错误消息服务.asmx.cs プロジェクト: vebin/soa
        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;
        }