// Token: 0x0600000A RID: 10 RVA: 0x00002730 File Offset: 0x00000930 private static void MainUnhandledExceptionHandler(object sender, UnhandledExceptionEventArgs eventArgs) { MailboxTransportDeliveryService.diag.TraceDebug(0L, "MainUnhandledExceptionHandler"); if (MailboxTransportDeliveryService.isExiting) { Environment.Exit(0); } if (Components.IsActive) { Components.OnUnhandledException((Exception)eventArgs.ExceptionObject); PoisonMessage.SavePoisonContext((Exception)eventArgs.ExceptionObject); DeliveryConfiguration.Instance.PoisonHandler.SavePoisonContext(); MailboxTransportEventLogger.LogEvent(MSExchangeDeliveryEventLogConstants.Tuple_DeliveryPoisonMessage, null, new string[] { PoisonHandler <DeliveryPoisonContext> .Context.ToString(), eventArgs.ExceptionObject.ToString() }); } int num = Interlocked.Exchange(ref MailboxTransportDeliveryService.busyUnhandledException, 1); if (num == 1) { return; } ExWatson.HandleException(sender, eventArgs); MailboxTransportDeliveryService.diag.TraceDebug(0L, "Done processing unhandled exception. Return to CLR."); }
public void TransferToBus(IAdvancedBus advancedBus) { var rebusEvents = advancedBus.Events; if (MessageSent != null) { foreach (var listener in MessageSent.GetInvocationList().Cast <MessageSentEventHandler>()) { rebusEvents.MessageSent += listener; } } if (BeforeMessage != null) { foreach (var listener in BeforeMessage.GetInvocationList().Cast <BeforeMessageEventHandler>()) { rebusEvents.BeforeMessage += listener; } } if (AfterMessage != null) { foreach (var listener in AfterMessage.GetInvocationList().Cast <AfterMessageEventHandler>()) { rebusEvents.AfterMessage += listener; } } if (BeforeTransportMessage != null) { foreach (var listener in BeforeTransportMessage.GetInvocationList().Cast <BeforeTransportMessageEventHandler>()) { rebusEvents.BeforeTransportMessage += listener; } } if (AfterTransportMessage != null) { foreach (var listener in AfterTransportMessage.GetInvocationList().Cast <AfterTransportMessageEventHandler>()) { rebusEvents.AfterTransportMessage += listener; } } if (PoisonMessage != null) { foreach (var listener in PoisonMessage.GetInvocationList().Cast <PoisonMessageEventHandler>()) { rebusEvents.PoisonMessage += listener; } } }
public void Start() { using (ConsoleColor.Cyan.AsForegroundColor()) { Console.WriteLine("Sending PoisonMessage at startup..."); var message = new PoisonMessage() { Content = "this is expected to fail :-)" }; this.Bus.Send(message); Console.WriteLine("PoisonMessage sent!"); } }
// Token: 0x0600000F RID: 15 RVA: 0x00002494 File Offset: 0x00000694 private static void MainUnhandledExceptionHandler(object sender, UnhandledExceptionEventArgs eventArgs) { ExTraceGlobals.GeneralTracer.TraceDebug(0L, "MainUnhandledExceptionHandler"); if (Program.main.isExiting) { Environment.Exit(0); } int num = Interlocked.Exchange(ref Program.main.busyUnhandledException, 1); if (num == 1) { return; } string text = null; if (Program.main.transportComponents != null) { text = Components.OnUnhandledException((Exception)eventArgs.ExceptionObject); } if (Components.IsActive) { PoisonMessage.SavePoisonContext((Exception)eventArgs.ExceptionObject); } ExTraceGlobals.GeneralTracer.TraceDebug(0L, "Process unhandled exception"); WatsonReportAction action = new WatsonExtraDataReportAction(text); ExWatson.RegisterReportAction(action, WatsonActionScope.Thread); try { ExWatson.HandleException(sender, eventArgs); } finally { ExWatson.UnregisterReportAction(action, WatsonActionScope.Thread); } ExTraceGlobals.GeneralTracer.TraceDebug(0L, "Done processing unhandled exception. Return to CLR."); }
internal void TransferToBus(IBus bus) { var rebusEvents = bus.Advanced.Events; if (MessageContextEstablished != null) { foreach (var listener in MessageContextEstablished.GetInvocationList().Cast <MessageContextEstablishedEventHandler>()) { rebusEvents.MessageContextEstablished += listener; } } if (MessageSent != null) { foreach (var listener in MessageSent.GetInvocationList().Cast <MessageSentEventHandler>()) { rebusEvents.MessageSent += listener; } } if (BeforeInternalSend != null) { foreach (var listener in BeforeInternalSend.GetInvocationList().Cast <BeforeInternalSendEventHandler>()) { rebusEvents.BeforeInternalSend += listener; } } if (BeforeMessage != null) { foreach (var listener in BeforeMessage.GetInvocationList().Cast <BeforeMessageEventHandler>()) { rebusEvents.BeforeMessage += listener; } } if (AfterMessage != null) { foreach (var listener in AfterMessage.GetInvocationList().Cast <AfterMessageEventHandler>()) { rebusEvents.AfterMessage += listener; } } if (BusStarted != null) { foreach (var listener in BusStarted.GetInvocationList().Cast <BusStartedEventHandler>()) { rebusEvents.BusStarted += listener; } } if (BusStopped != null) { foreach (var listener in BusStopped.GetInvocationList().Cast <BusStoppedEventHandler>()) { rebusEvents.BusStopped += listener; } } if (BeforeTransportMessage != null) { foreach (var listener in BeforeTransportMessage.GetInvocationList().Cast <BeforeTransportMessageEventHandler>()) { rebusEvents.BeforeTransportMessage += listener; } } if (AfterTransportMessage != null) { foreach (var listener in AfterTransportMessage.GetInvocationList().Cast <AfterTransportMessageEventHandler>()) { rebusEvents.AfterTransportMessage += listener; } } if (PoisonMessage != null) { foreach (var listener in PoisonMessage.GetInvocationList().Cast <PoisonMessageEventHandler>()) { rebusEvents.PoisonMessage += listener; } } if (UncorrelatedMessage != null) { foreach (var listener in UncorrelatedMessage.GetInvocationList().Cast <UncorrelatedMessageEventHandler>()) { rebusEvents.UncorrelatedMessage += listener; } } if (MessageAudited != null) { foreach (var listener in MessageAudited.GetInvocationList().Cast <MessageAuditedEventHandler>()) { rebusEvents.MessageAudited += listener; } } if (AfterHandling != null) { foreach (var listener in AfterHandling.GetInvocationList().Cast <AfterHandlingEventHandler>()) { rebusEvents.AfterHandling += listener; } } if (BeforeHandling != null) { foreach (var listener in BeforeHandling.GetInvocationList().Cast <BeforeHandlingEventHandler>()) { rebusEvents.BeforeHandling += listener; } } if (OnHandlingError != null) { foreach (var listener in OnHandlingError.GetInvocationList().Cast <OnHandlingErrorEventHandler>()) { rebusEvents.OnHandlingError += listener; } } foreach (var messageMutator in MessageMutators) { rebusEvents.MessageMutators.Add(messageMutator); } foreach (var unitOfWorkManager in unitOfWorkManagers) { rebusEvents.AddUnitOfWorkManager(unitOfWorkManager); } }