コード例 #1
0
 public static void SQLExceptionToLog(SqlError strEx, string strVoid)
 {
     if (strEx == null || strVoid == null)
     {
         return;
     }
     LogToStatus("[SQLException Void] : " + strVoid, enLogLevel.ERROR);
     LogToStatus("[SQLException Type] : " + strEx.GetType(), enLogLevel.ERROR);
     LogToStatus("[SQLException Class] : " + strEx.Class, enLogLevel.ERROR);
     LogToStatus("[SQLException LineNumber] : " + strEx.LineNumber.ToString(), enLogLevel.ERROR);
     LogToStatus("[SQLException Message] : " + strEx.Message, enLogLevel.ERROR);
     LogToStatus("[SQLException Number] : " + strEx.Number, enLogLevel.ERROR);
     LogToStatus("[SQLException Procedure] : " + strEx.Procedure, enLogLevel.ERROR);
     LogToStatus("[SQLException Server] : " + strEx.Server, enLogLevel.ERROR);
     LogToStatus("[SQLException State] : " + strEx.State.ToString(), enLogLevel.ERROR);
     LogToStatus("[SQLException Message] : " + strEx.Message, enLogLevel.ERROR);
     LogToStatus("[SQLException Source] : " + Environment.NewLine + strEx.Source, enLogLevel.ERROR);
 }
コード例 #2
0
        public static void SendSQLErrorToMail(SqlException ex, SqlError exmail, string filename)
        {
            try
            {
                var configuration = ConfigurationHelper.GetConfiguration(Directory.GetCurrentDirectory());

                string server               = configuration.GetSection("Smtp")["ServerName"];
                string mailerror            = configuration.GetSection("SendMail")["MailError"];
                string mailit               = configuration.GetSection("SendMail")["MailIt"];
                string exceptionmailsubject = configuration.GetSection("SendMail")["ExceptionMailSubject"];

                //split liste des personnes à prévenir
                String[] substrings = mailerror.Split(";");

                string ErrorlineNo = exmail.LineNumber.ToString();
                string Errormsg    = exmail.GetType().Name.ToString();
                string extype      = exmail.GetType().ToString();
                string sp          = exmail.Procedure.ToString();

                string ErrorLocation = exmail.Message.ToString();



                using (var message = new MailMessage())
                {
                    message.Subject = "ErrorMVCCoreSql";

                    message.Body = $"<h1>Error: {ex.Message.Replace(Environment.NewLine, "<br />")}</h1>{ex.Source.Replace(Environment.NewLine, "<br />")}<hr />";

                    message.Body += $"<b>Date: " + DateTime.Now.ToString() + "</b><br />";
                    message.Body += $"CurrentCulture.DisplayName: {CultureInfo.CurrentCulture.DisplayName}<hr />";


                    //////////////////////////ATTENTION CECI NE FONCTIONNE PAS SUR IIS///////////////////////
                    //message.Body += $"Server IIS: {System.Security.Principal.WindowsIdentity.GetCurrent().Name} <br /> ";
                    //////////////////////////ATTENTION CECI NE FONCTIONNE PAS SUR IIS///////////////////////
                    message.Body += $"Server SQL: {ex.Server }<hr />";

                    message.Body += $"File: {filename}<br />";
                    message.Body += $"Procedure: {sp}<br />";
                    message.Body += $"Line: {ErrorlineNo}<br />";
                    message.Body += $"ErrorMessage: {Errormsg}<br />";
                    message.Body += $"Exception Type: {extype}<br />";
                    message.Body += $"Error Details: {ErrorLocation}<br />";
                    message.Body += $"Error Page Url: <hr />";

                    //message.Body += $"Path: {request.Path}<br />";
                    //message.Body += $"QueryString: {request.QueryString}<br />";
                    //message.Body += $"RawTarget: {request.RawTarget}<br />";
                    //message.Body += $"Protocol: {request.Protocol}<br />";
                    //message.Body += $"StatusCode: {context.Response.StatusCode}<hr />";

                    //message.Body += $"User Identity: {context.User.Identity.Name}<br />";
                    //message.Body += $"Host: {context.Request.Host}<br />";
                    //message.Body += $"Method: {context.Request.Method}<hr />";

                    message.Body += $"<b>Error:</b><br />";
                    message.Body += $"HelpLink: {ex.HelpLink }<br />";
                    message.Body += $"Type: {ex.GetType() }<br />";
                    message.Body += $"Values: {ex.Data.Values}<br />";
                    message.Body += $"TargetSite : {ex.TargetSite  }<hr />";

                    //message.Body += $"Referer: {context.Request.Headers["Referer"]}<hr />";

                    //message.Body += $"User-Agent: {context.Request.Headers["User-Agent"]}<br />";
                    //message.Body += $"IP Address: {httpConnectionFeature?.LocalIpAddress}<br />";

                    if (ex.StackTrace != null)
                    {
                        message.Body += $"<b>Stack Trace</b><br />{ex.StackTrace.Replace(Environment.NewLine, "<br />")}";
                    }
                    if (ex.InnerException != null)
                    {
                        message.Body += $"<hr /><b>Inner Exception</b><br />{ex.InnerException?.Message.Replace(Environment.NewLine, "<br />")}<hr />";
                    }

                    message.IsBodyHtml = true;

                    foreach (var substring in substrings)
                    {
                        message.To.Add(new MailAddress(substring));
                    }
                    message.From = new MailAddress(mailit, exceptionmailsubject);

                    using (var smtpClient = new SmtpClient(server))
                    {
                        smtpClient.Send(message);
                    }
                }
            }
            catch (Exception em)
            {
                em.ToString();
            }
        }