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); }
internal static ActivityContextState DeserializeFrom(HttpRequest httpRequest) { if (httpRequest == null) { return(null); } return(ActivityContextState.DeserializeFrom(new HttpRequestWrapper(httpRequest))); }
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()))); }
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)); }
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)); }
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()))); }
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)); }