Esempio n. 1
0
 string IExceptionFormatter.GetFormatString(Exception e, object attachObject)
 {
     HttpApplication app = attachObject as HttpApplication;
     if(app == null) {
         return e.ToString();
     }
     StringBuilder ret = new StringBuilder();
     StreamReader streamReader = new StreamReader(app.Request.InputStream, app.Request.ContentEncoding);
     ret.AppendFormat(formatMessage, e.Message, app.Request.HttpMethod, app.Request.Url.ToString(), e.GetHashCode(), app.Request.Headers, e.ToString(), streamReader.ReadToEnd(), app.Request.UserHostAddress, app.Server.MachineName, app.User.Identity.Name);
     return ret.ToString();
 }
Esempio n. 2
0
        public static void LogException(Exception exception)
        {
            if (exception != null)
            {
                try
                {
                    string traceMessage = DateTime.Now + " : " + exception.Message;
                    if (exception.InnerException != null)
                    {
                        traceMessage += " : " + exception.InnerException.Message;
                    }

                    tracesource.TraceEvent(TraceEventType.Error, exception.GetHashCode(), traceMessage);
                }
                catch (Exception)
                {
                    // Consume any exception while logging as it cannot be logged any more.
                }
            }
        }
Esempio n. 3
0
        /// <summary>
        /// Creates a new instance of ExceptionDetails from a System.Exception and a parent ExceptionDetails.
        /// </summary>
        internal static ExceptionDetails CreateWithoutStackInfo(Exception exception, ExceptionDetails parentExceptionDetails)
        {
            if (exception == null)
            {
                throw new ArgumentNullException("exception");
            }

            var exceptionDetails = new External.ExceptionDetails()
            {
                id = exception.GetHashCode(),
                typeName = exception.GetType().FullName,
                message = exception.Message
            };

            if (parentExceptionDetails != null)
            {
                exceptionDetails.outerId = parentExceptionDetails.id;
            }

            return exceptionDetails;
        }
        /// <summary>
		/// Dumps an exception and data to the isolated storage.
		/// </summary>
		/// <param name="data"></param>
		/// <param name="ex"></param>
		public static void DumpData(byte[] data, Exception ex)
		{
			using (IsolatedStorageFile isf = IsolatedStorageFile.GetUserStoreForApplication())
			{
				// Ensures the folder exists.
				isf.CreateDirectory("/Debug");
				
				// Gets the filename prefix.
				string prefix = "/Debug/" + DateTime.UtcNow.ToString("yyyyMMddHHmmssffff") +"_" + ex.GetHashCode() + "_";

				// Dumps the data.
				using (IsolatedStorageFileStream stream = isf.CreateFile(prefix + "ex_rawdata.txt"))
				{
					stream.Write(data, 0, data.Length);
				}

				// Dumps the stack trace.
				using (IsolatedStorageFileStream stream = isf.CreateFile(prefix + "ex_stacktrace.txt"))
				{
					DumpException(ex, stream);
				}
			}
		}
Esempio n. 5
0
 string IExceptionFormatter.GetFormatString(Exception e, object attachObject)
 {
     const string formatMessage =
     @"{0}
     {1} {2}
     hash code:{3}
     request headers:
     {4}
     request data:
     {6}
     client ip:{7}
     server name/ip:{8}
     auth username:{9}
     duration:{10}
     error data:
     {5}
     ";
     var app = attachObject as HttpApplication;
     if(app == null) {
         var ctx = HttpContext.Current;
         if(ctx == null) {
             return e.ToString();
         }
         app = ctx.ApplicationInstance;
     }
     var duration = (DateTime.Now - app.Context.Timestamp).TotalMilliseconds;
     var ret = new StringBuilder();
     string body;
     if(app.Request.Files.Count <= 0) {
         var streamReader = new StreamReader(app.Request.InputStream, app.Request.ContentEncoding);
         body = streamReader.ReadToEnd();
     } else {//文件上传不保存请求内容(否则太大了)
         body = WebHelper.NameValueCollectionToQueryString(app.Request.Form, app.Request.ContentEncoding);
     }
     ret.AppendFormat(formatMessage, e.Message, app.Request.HttpMethod, app.Request.Url, e.GetHashCode(), app.Request.Headers, e, body, app.Request.UserHostAddress, app.Server.MachineName, app.User.Identity.Name, duration);
     return ret.ToString();
 }
		/// <summary>
		/// Dumps an exception to the isolated storage and on BugSense.
		/// </summary>
		/// <param name="ex"></param>
		/// <param name="customMessage"></param>
		/// <param name="dumpOnBugSenseToo"></param>
		public static void DumpException(Exception ex, string customMessage = null, bool dumpOnBugSenseToo = false)
		{
			// BugSense dump.
			if (dumpOnBugSenseToo && BugSenseHandler.IsInitialized)
			{
				BugSense.Core.Model.LimitedCrashExtraDataList extraData = null;
				if (customMessage != null)
				{
					extraData = new BugSense.Core.Model.LimitedCrashExtraDataList();
					extraData.Add("customMessage", customMessage);
				}

				BugSenseHandler.Instance.SendExceptionAsync(ex, extraData);
			}

			// Local dump.
			using (IsolatedStorageFile isf = IsolatedStorageFile.GetUserStoreForApplication())
			{
				// Ensures the folder exists.
				isf.CreateDirectory("/Debug");

				// Gets the filename prefix.
				string prefix = "/Debug/" + DateTime.UtcNow.ToString("yyyyMMddHHmmssffff") + "_" + ex.GetHashCode() + "_";

				// Dumps the stack trace.
				using (IsolatedStorageFileStream stream = isf.CreateFile(prefix + "stacktrace.txt"))
				{
                    using (StreamWriter sw = new StreamWriter(stream))
                    {
                        DumpException((dynamic)ex, sw, customMessage);
                    }
				}
			}
		}
Esempio n. 7
0
 public Promise(Exception exception)
 {
     _exception = exception;
     _hashCode = exception.GetHashCode();
     _waitHandle = new ManualResetEventSlim(true);
 }
Esempio n. 8
0
        private static ReturnValor mException(Exception ex)
        {
            ReturnValor oReturn = new ReturnValor();

            StringBuilder sb = new StringBuilder();
            sb.AppendLine(ex.GetType().FullName);
            sb.AppendLine("Error Number: " + ex.GetHashCode().ToString());
            sb.AppendLine("Source GEN: " + ex.Source);
            sb.AppendLine("StackTrace: " + ex.StackTrace.ToString());
            sb.AppendLine(ex.Message.ToString());

            if (TExcep == "USER")
            {
                oReturn.Message = HelpMessages.ResourceManager.GetString(ex.GetHashCode().ToString());
                if (string.IsNullOrEmpty(oReturn.Message))
                    oReturn.Message = ex.Message.ToString();
            }
            else if (TExcep == "ADMIN")
                oReturn.Message = sb.ToString();
         
            return oReturn;
        }
Esempio n. 9
0
            private bool HandleException(Exception ex)
            {
                if (ex is InstallException)
                {
                    if (!_silent)
                    {
                        _console.WriteLine();
                        _console.WriteToConsole(ConsoleColor.Yellow, Strings.WARN_ServiceNotInstalled, _serviceName);
                    }
                    return true;
                }

                if (ex is InvalidOperationException)
                {
                    if (ex.GetHashCode() == 55530882)
                    {
                        if (!_silent)
                        {
                            _console.WriteLine();
                            _console.WriteToConsole(ConsoleColor.Yellow, Strings.WARN_ServiceAlreadyInstalled,
                                _serviceName);
                        }
                        return true;
                    }
                }

                if (ex.InnerException != null)
                {
                    if (ex.InnerException is Win32Exception)
                    {
                        // could be trying to install something that's already installed
                        // OR could be trying to start a service that isn't installed

                        if (!_silent)
                        {
                            _console.WriteLine();
                            //_console.WriteToConsole(ConsoleColor.Yellow, Strings.WARN_ServiceAlreadyInstalled,
                            //    _serviceName);
                            _console.WriteToConsole(ConsoleColor.Yellow, ex.InnerException.Message, _serviceName);
                        }
                        return true;
                    }

                    _console.WriteLine();
                    _console.WriteToConsole(ConsoleColor.Yellow, ex.InnerException.GetType().FullName);
                    _console.WriteToConsole(ConsoleColor.Yellow, ex.InnerException.Message);
                    _console.WriteToConsole(ConsoleColor.Yellow,
                        ex.InnerException.GetHashCode().ToString(CultureInfo.InvariantCulture));
                }

                return false;
            }
Esempio n. 10
0
 public UpdateErrorArgs(Exception exception)
 {
     this.ErrorCode = exception.GetHashCode();
     this.Message = exception.Message;
 }
Esempio n. 11
0
 protected void HandleException(Exception ex)
 {
     this.exception_label.Text = ex.GetType ().ToString ();
     this.message_label.Text = ex.Message;
     this.stacktrace_textview.Buffer.Text = ex.StackTrace;
     this.exception_treeview.AppendColumn ("Name", new CellRendererText (), "text", 0);
     this.exception_treeview.AppendColumn ("Type", new CellRendererText (), "text", 1);
     this.exception_treeview.AppendColumn ("Value", new CellRendererText (), "text", 2);
     TreeStore store = new TreeStore (typeof (string), typeof (string), typeof (string));
     store.AppendValues (new string[] {"Class", ex.GetType().ToString(), ex.GetType().ToString()});
     store.AppendValues (new string[] {"Message", ex.Message.GetType().ToString (), ex.Message});
     store.AppendValues (new string[] {"Source", ex.Source.GetType().ToString(), ex.Source});
     store.AppendValues (new string[] {"StackTrace", ex.StackTrace.GetType().ToString(), ex.StackTrace});
     store.AppendValues (new string[] {"HashCode", ex.GetHashCode().GetType().ToString(), ex.GetHashCode().ToString()});
     foreach (TreeViewColumn tvc in this.exception_treeview.Columns)
     {
         tvc.Resizable = true;
     }
     //this.exception_treeview.Columns[1].Expand = false;
     this.exception_treeview.Model = store;
     this.exception_treeview.HeadersVisible = true;
     this.error_dialog.ShowAll ();
     this.error_dialog.Run ();
     this.error_dialog.Hide ();
 }
Esempio n. 12
0
        /// <summary>
        /// Grava um arquivo texto com um erros ocorridos durante as operações para que o ERP possa tratá-los        
        /// </summary>
        /// <param name="arquivo">Nome do arquivo que está sendo processado</param>
        /// <param name="finalArqEnvio">string final do nome do arquivo que é para ser substituida na gravação do arquivo de Erro</param>
        /// <param name="finalArqErro">string final do nome do arquivo que é para ser utilizado no nome do arquivo de erro</param>
        /// <param name="exception">Exception gerada</param>
        /// <param name="errorCode">Código do erro</param>
        /// <param name="moveArqErro">Move o arquivo informado no parametro "arquivo" para a pasta de XML com ERRO</param>
        /// <remarks>
        /// Autor: Wandrey Mundin Ferreira
        /// Data: 02/06/2011
        /// </remarks>
        public static void GravarArqErroServico(string arquivo, string finalArqEnvio, string finalArqErro, Exception exception, ErroPadrao erroPadrao, bool moveArqErro)
        {
            int emp = Empresas.FindEmpresaByThread();

            //Qualquer erro ocorrido o aplicativo vai mover o XML com falha da pasta de envio
            //para a pasta de XML´s com erros. Futuramente ele é excluido quando outro igual
            //for gerado corretamente.
            if (moveArqErro)
                MoveArqErro(arquivo);

            //Grava arquivo de ERRO para o ERP
            string pastaRetorno = Empresas.Configuracoes[emp].PastaXmlRetorno;
            FileInfo fi = new FileInfo(arquivo);
            if (fi.Directory.FullName.ToLower().EndsWith("geral\\temp"))
                pastaRetorno = Propriedade.PastaGeralRetorno;

            string arqErro = pastaRetorno + "\\" + Functions.ExtrairNomeArq(arquivo, finalArqEnvio) + finalArqErro;

            string erroMessage = string.Empty;

            erroMessage += "Versão|" + NFe.Components.Propriedade.Versao + "\r\n";
            erroMessage += "ErrorCode|" + ((int)erroPadrao).ToString("0000000000");
            erroMessage += "\r\n";
            erroMessage += "Message|" + exception.Message;
            erroMessage += "\r\n";
            erroMessage += "StackTrace|" + exception.StackTrace;
            erroMessage += "\r\n";
            erroMessage += "Source|" + exception.Source;
            erroMessage += "\r\n";
            erroMessage += "Type|" + exception.GetType();
            erroMessage += "\r\n";
            erroMessage += "TargetSite|" + exception.TargetSite;
            erroMessage += "\r\n";
            erroMessage += "HashCode|" + exception.GetHashCode().ToString();

            if (exception.InnerException != null)
            {
                erroMessage += "\r\n";
                erroMessage += "\r\n";
                erroMessage += "InnerException 1";
                erroMessage += "\r\n";
                erroMessage += "Message|" + exception.InnerException.Message;
                erroMessage += "\r\n";
                erroMessage += "StackTrace|" + exception.InnerException.StackTrace;
                erroMessage += "\r\n";
                erroMessage += "TargetSite|" + exception.InnerException.TargetSite;
                erroMessage += "\r\n";
                erroMessage += "Source|" + exception.InnerException.Source;
                erroMessage += "\r\n";
                erroMessage += "HashCode|" + exception.InnerException.GetHashCode().ToString();

                if (exception.InnerException.InnerException != null)
                {
                    erroMessage += "\r\n";
                    erroMessage += "\r\n";
                    erroMessage += "InnerException 2";
                    erroMessage += "\r\n";
                    erroMessage += "Message|" + exception.InnerException.InnerException.Message;
                    erroMessage += "\r\n";
                    erroMessage += "StackTrace|" + exception.InnerException.InnerException.StackTrace;
                    erroMessage += "\r\n";
                    erroMessage += "TargetSite|" + exception.InnerException.InnerException.TargetSite;
                    erroMessage += "\r\n";
                    erroMessage += "Source|" + exception.InnerException.InnerException.Source;
                    erroMessage += "\r\n";
                    erroMessage += "HashCode|" + exception.InnerException.InnerException.GetHashCode().ToString();

                    if (exception.InnerException.InnerException.InnerException != null)
                    {
                        erroMessage += "\r\n";
                        erroMessage += "\r\n";
                        erroMessage += "InnerException 3";
                        erroMessage += "\r\n";
                        erroMessage += "Message|" + exception.InnerException.InnerException.InnerException.Message;
                        erroMessage += "\r\n";
                        erroMessage += "StackTrace|" + exception.InnerException.InnerException.InnerException.StackTrace;
                        erroMessage += "\r\n";
                        erroMessage += "TargetSite|" + exception.InnerException.InnerException.InnerException.TargetSite;
                        erroMessage += "\r\n";
                        erroMessage += "Source|" + exception.InnerException.InnerException.InnerException.Source;
                        erroMessage += "\r\n";
                        erroMessage += "HashCode|" + exception.InnerException.InnerException.InnerException.GetHashCode().ToString();
                    }
                }
            }

            try
            {
                // Gerar log do erro
                Auxiliar.WriteLog(erroMessage, true);
                //TODO: (Marcelo) Este tratamento de erro não poderia ser feito diretamente no método?
            }
            catch
            {
            }

            File.WriteAllText(arqErro, erroMessage);

            ///
            /// grava o arquivo de erro no FTP
            new GerarXML(emp).XmlParaFTP(emp, arqErro);
        }
        public void SerializeWritesInnerExceptionWithOuterIdLinkingItToItsParentException()
        {
            var innerException = new Exception();
            var exception = new Exception("Test Exception", innerException);
            ExceptionTelemetry expected = CreateExceptionTelemetry(exception);

            var item = TelemetryItemTestHelper.SerializeDeserializeTelemetryItem<ExceptionTelemetry, DataPlatformModel.ExceptionData>(expected);

            Assert.Equal(exception.GetHashCode(), item.Data.BaseData.Exceptions[1].OuterId);
        }
Esempio n. 14
0
 private void GenerateExceptionMessage(string message, Exception ex, LogLevel logLevel)
 {
     var exceptionMessage = string.Format("App message: {0}\nException: {1}\nException hashcode: {2}\n{3}", message, ex.Message, ex.GetHashCode(), ex.StackTrace);
     Log(exceptionMessage, logLevel);
 }
 public ErrorViewModel(Exception exception)
 {
     Exception = exception;
     ErrorInfo = new ErrorInfo(exception.GetHashCode(), exception.Message, exception.StackTrace);
 }
Esempio n. 16
0
 private CommonResponse cr(CommonResponse ecr, Exception ex)
 {
     ecr.meta.code = 599;
     ecr.meta.message = "The server handle exceptions, the operation fails.";
     ecr.meta.errors.code = ex.GetHashCode();
     ecr.meta.errors.field = ex.HelpLink;
     ecr.meta.errors.message = ex.Message.ToString();
     return ecr;
 }
        public virtual Event LogErrorInDatabase(Exception ex)
        {
            HttpContext context = HttpContext.Current;
            if (context != null)
            {
                using (dbContext = new DataManager(false).CreateDataContext<ExceptionNotifierDataContext>())
                {

                    //
                    // Create an event
                    //
                    eventEntity = new InfoControl.Web.Auditing.Event();

                    eventEntity.ApplicationId = Application.Current.ApplicationId;
                    eventEntity.CurrentDate = DateTime.Now;
                    eventEntity.ExceptionCode = ex.GetHashCode().ToString();
                    eventEntity.Message = GetTextErrorLog(ex);
                    eventEntity.Name = ex.GetType().ToString();
                    eventEntity.Path = context.Request.FilePath;

                    eventEntity.RefererUrl = "";
                    if (context.Request.UrlReferrer != null)
                        eventEntity.RefererUrl = context.Request.UrlReferrer.AbsolutePath;

                    eventEntity.Source = ex.Source;
                    eventEntity.StackTrace = ex.StackTrace;
                    eventEntity.TargetSite = ex.TargetSite.Name;
                    eventEntity.EventType = Convert.ToInt32(EventType.Error);

                    if (context.User != null)
                        if (context.User is AccessControlPrincipal)
                            if ((context.User as AccessControlPrincipal).Identity.UserId > 0)
                                eventEntity.UserId = (context.User as AccessControlPrincipal).Identity.UserId;



                    //  eventEntity.StackTrace += ex.HelpLink;

                    dbContext.Events.InsertOnSubmit(eventEntity);
                    dbContext.SubmitChanges();
                }
            }

            return eventEntity;
        }
Esempio n. 18
0
 public ErrorMessage(Exception ex) {
     Code = ex.GetHashCode();
     Message = ex.Message;
     StackTrace = ex.StackTrace;
 }