/// <summary> /// Inserta en la base de datos un error a nivel base de datos /// </summary> /// <param name="MessageErr">Mensaje de error</param> /// <param name="st">El trace</param> /// <param name="user">Usuario en caso de haberlo</param> /// <param name="sApp">El ID de la aplicacion</param> public void insErrorDB(string MessageErr, StackTrace st, string user, string sApp) { try { if (MessageErr.Length > 445) { MessageErr = MessageErr.Substring(0, 445); } //Obtiene el hostname String strHostname = Dns.GetHostName(); IPHostEntry myself = Dns.GetHostEntry(strHostname); ////Obtiene la Ip del usuario que genero el error System.Net.IPAddress ip = myself.AddressList.Where(n => n.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork).First(); string sIp = ip.ToString(); StringBuilder strStackTrace = new StringBuilder(); foreach (StackFrame f in st.GetFrames()) { strStackTrace.Append(f.ToString()); break; } //if (MessageErr.Length > 490) MessageErr = MessageErr.Substring(0, 448); if (strStackTrace.Length > 490)// Validamos la longitud del stack { string sStackTrace = strStackTrace.ToString(); strStackTrace.Clear(); strStackTrace.Append(sStackTrace.Substring(0, 490)); } if (sIp.Length > 39) { sIp = sIp.Substring(0, 39); } if (strHostname.Length > 148) { strHostname = strHostname.Substring(0, 148); } //Inserta en la tabla del log de errores linqIELDataBaseDataContext dboSegLatino = new linqIELDataBaseDataContext(); dboSegLatino.sp_insLogError(Int64.Parse(sApp), MessageErr, strHostname, sIp, strStackTrace.ToString(), DateTime.Now, user); } catch (Exception ex) { throw new Exception(ex.Message); } }