Ejemplo n.º 1
0
        private static ActivityScope AddActivityScope(ActivityContextState activityContextState, object userState, ActivityType activityType, ActivityEventArgs eventArgs, LocalizedString exceptionString)
        {
            bool          flag          = false;
            bool          flag2         = false;
            ActivityScope activityScope = null;

            if (ActivityContext.IsStarted)
            {
                try
                {
                    throw new ActivityContextException(exceptionString);
                }
                catch (ActivityContextException)
                {
                    flag2 = true;
                }
                if (SingleContext.Singleton.CheckId())
                {
                    ActivityScopeImpl activityScopeImpl = (ActivityScopeImpl)ActivityContext.GetCurrentActivityScope();
                    if (activityScopeImpl != null)
                    {
                        return(new ActivityScope(activityScopeImpl));
                    }
                }
            }
            if (SingleContext.Singleton.LocalId != null && !flag2)
            {
                try
                {
                    throw new ActivityContextException(DiagnosticsResources.ExceptionActivityContextMustBeCleared(DebugContext.GetDebugInfo()));
                }
                catch (ActivityContextException)
                {
                }
            }
            ActivityScope result;

            try
            {
                activityScope              = ActivityScopeImpl.AddActivityScope(activityContextState);
                activityScope.UserState    = userState;
                activityScope.ActivityType = activityType;
                ActivityContext.RaiseEvent(activityScope.ActivityScopeImpl, eventArgs);
                ExTraceGlobals.ActivityContextTracer.TraceDebug <Guid, bool>((long)activityScope.LocalId.GetHashCode(), "ActivityContext.AddActivityScope - ActivityId {0}, (activityContextState != null) = {1}", activityScope.ActivityId, activityContextState != null);
                flag   = true;
                result = activityScope;
            }
            finally
            {
                if (!flag)
                {
                    if (activityScope != null)
                    {
                        activityScope.Dispose();
                    }
                    ActivityContext.ClearThreadScope();
                }
            }
            return(result);
        }
Ejemplo n.º 2
0
 internal static ActivityContextState DeserializeFrom(HttpRequest httpRequest)
 {
     if (httpRequest == null)
     {
         return(null);
     }
     return(ActivityContextState.DeserializeFrom(new HttpRequestWrapper(httpRequest)));
 }
Ejemplo n.º 3
0
 public static ActivityScope Resume(ActivityContextState activityContextState, object userState = null)
 {
     if (activityContextState == null)
     {
         try
         {
             throw new ArgumentNullException("activityContextState was null");
         }
         catch (ArgumentException)
         {
         }
     }
     return(ActivityContext.AddActivityScope(activityContextState, userState, (activityContextState != null) ? activityContextState.ActivityType : ActivityType.Request, ActivityContext.OnResumeEventArgs, DiagnosticsResources.ExceptionScopeAlreadyExists(DebugContext.GetDebugInfo())));
 }
Ejemplo n.º 4
0
        internal static ActivityContextState DeserializeFrom(OperationContext wcfOperationContext)
        {
            string text = null;

            if (wcfOperationContext != null && wcfOperationContext.IncomingMessageHeaders != null)
            {
                int num = wcfOperationContext.IncomingMessageHeaders.FindHeader("X-MSExchangeActivityCtx", string.Empty);
                if (num >= 0)
                {
                    text = wcfOperationContext.IncomingMessageHeaders.GetHeader <string>(num);
                }
                ExTraceGlobals.ActivityContextTracer.TraceDebug <string, string>(0L, "ActivityContext.DeserializeFromMessage - in the wcfOperationContext header, Serialized ActivityScope ({0}) was {1}", "X-MSExchangeActivityCtx", text);
            }
            return(ActivityContextState.DeserializeFromString(text, null, null));
        }
Ejemplo n.º 5
0
        internal static ActivityContextState DeserializeFrom(HttpRequestMessageProperty wcfMessage)
        {
            string text  = null;
            string text2 = null;
            string text3 = null;

            if (wcfMessage != null && wcfMessage.Headers != null && wcfMessage.Headers.Keys != null)
            {
                text  = wcfMessage.Headers["X-MSExchangeActivityCtx"];
                text2 = wcfMessage.Headers["client-request-id"];
                text3 = wcfMessage.Headers["return-client-request-id"];
                ExTraceGlobals.ActivityContextTracer.TraceDebug(0L, "ActivityContext.DeserializeFromMessage - in the wcfMessage header, Serialized ActivityScope ({0}) was {1}, {2} was {3}, {4} was {5} ", new object[]
                {
                    "X-MSExchangeActivityCtx",
                    text,
                    "client-request-id",
                    text2,
                    "return-client-request-id",
                    text3
                });
            }
            return(ActivityContextState.DeserializeFromString(text, text2, text3));
        }
Ejemplo n.º 6
0
        internal static ActivityScope DeserializeFrom(HttpRequest httpRequest, object userState = null)
        {
            ActivityContextState activityContextState = ActivityContextState.DeserializeFrom(httpRequest);

            return(ActivityContext.AddActivityScope(activityContextState, userState, (activityContextState != null) ? activityContextState.ActivityType : ActivityType.Request, ActivityContext.OnStartEventArgs, DiagnosticsResources.ExceptionScopeAlreadyExists(DebugContext.GetDebugInfo())));
        }
Ejemplo n.º 7
0
        private static ActivityContextState DeserializeFromString(string activityCtxString, string clientRequestIdString, string returnClientRequestIdString)
        {
            Version v    = null;
            Guid?   guid = null;
            ConcurrentDictionary <Enum, object> concurrentDictionary = new ConcurrentDictionary <Enum, object>();

            if (!string.IsNullOrWhiteSpace(activityCtxString) && !ActivityContextState.TryDeserializeMinimalFromString(activityCtxString, out guid))
            {
                string[][] validatedSubcomponents = ActivityContextState.GetValidatedSubcomponents(activityCtxString);
                if (validatedSubcomponents != null)
                {
                    Guid empty = Guid.Empty;
                    bool flag  = Version.TryParse(validatedSubcomponents[0][1], out v);
                    if (flag && v == ActivityContextState.SerializationVersion)
                    {
                        flag = (flag && Guid.TryParse(validatedSubcomponents[1][1], out empty));
                        if (flag)
                        {
                            guid = new Guid?(empty);
                            string value = HttpUtility.UrlDecode(validatedSubcomponents[2][1]);
                            if (!string.IsNullOrWhiteSpace(value))
                            {
                                concurrentDictionary.TryAdd(ActivityStandardMetadata.Component, value);
                            }
                            ActivityContextState.TryDeserializePayload(concurrentDictionary, validatedSubcomponents[3][1]);
                        }
                        else
                        {
                            ExTraceGlobals.ActivityContextTracer.TraceDebug <string>(0L, "Format of serialized ActivityScope was incorrect: {0}", activityCtxString);
                        }
                    }
                    else
                    {
                        ExTraceGlobals.ActivityContextTracer.TraceDebug <string>(0L, "Failed to parse the version or the versions are different, version value {0}", validatedSubcomponents[0][1]);
                    }
                }
                else
                {
                    ExTraceGlobals.ActivityContextTracer.TraceDebug <string>(0L, "Format of serialized ActivityScope was incorrect: {0}", activityCtxString);
                }
            }
            if (!string.IsNullOrWhiteSpace(clientRequestIdString))
            {
                if (clientRequestIdString.Length > 256)
                {
                    clientRequestIdString = clientRequestIdString.Substring(0, 256);
                }
                if (!string.IsNullOrWhiteSpace(clientRequestIdString))
                {
                    concurrentDictionary.TryAdd(ActivityStandardMetadata.ClientRequestId, clientRequestIdString);
                }
                bool flag2 = false;
                bool.TryParse(returnClientRequestIdString, out flag2);
                if (flag2)
                {
                    concurrentDictionary.TryAdd(ActivityStandardMetadata.ReturnClientRequestId, "true");
                }
            }
            if (guid == null && concurrentDictionary.Count == 0)
            {
                return(null);
            }
            return(new ActivityContextState(guid, concurrentDictionary));
        }