Exemplo n.º 1
0
        void ProcessInitializationTraces()
        {
            //Let asp.net know that it needs to wait
            IncrementBusyCount();

            try
            {
                if (TraceUtility.MessageFlowTracingOnly)
                {
                    //ensure that Activity ID is set
                    DiagnosticTraceBase.ActivityId = this.E2EActivityId;
                    this.propagateActivity         = false;
                }
                if (TraceUtility.ActivityTracing || (!TraceUtility.MessageFlowTracing && this.propagateActivity))
                {
                    this.e2eActivityId = TraceUtility.GetReceivedActivityId(this.OperationContext);

                    if ((this.E2EActivityId != Guid.Empty) && (this.E2EActivityId != InternalReceiveMessage.TraceCorrelationActivityId))
                    {
                        this.propagateActivity = true;
                        this.OperationContext.IncomingMessageProperties[MessagingActivityHelper.E2EActivityId] = this.E2EActivityId;
                        this.ambientActivityId = InternalReceiveMessage.TraceCorrelationActivityId;
                        FxTrace.Trace.SetAndTraceTransfer(this.E2EActivityId, true);
                        if (TD.StartSignpostEventIsEnabled())
                        {
                            TD.StartSignpostEvent(new DictionaryTraceRecord(new Dictionary <string, string>(2)
                            {
                                { MessagingActivityHelper.ActivityName, MessagingActivityHelper.ActivityNameWorkflowOperationInvoke },
                                { MessagingActivityHelper.ActivityType, MessagingActivityHelper.ActivityTypeExecuteUserCode }
                            }));
                        }
                    }
                    else
                    {
                        this.propagateActivity = false;
                    }
                }
            }
            catch (Exception ex)
            {
                if (Fx.IsFatal(ex))
                {
                    throw;
                }
                FxTrace.Exception.AsInformation(ex);
            }
        }