diff --git a/tracer/src/Datadog.Trace/ClrProfiler/AutoInstrumentation/Http/HttpClient/HttpMessageHandlerCommon.cs b/tracer/src/Datadog.Trace/ClrProfiler/AutoInstrumentation/Http/HttpClient/HttpMessageHandlerCommon.cs index 68b4a9a47983..7ae19148500b 100644 --- a/tracer/src/Datadog.Trace/ClrProfiler/AutoInstrumentation/Http/HttpClient/HttpMessageHandlerCommon.cs +++ b/tracer/src/Datadog.Trace/ClrProfiler/AutoInstrumentation/Http/HttpClient/HttpMessageHandlerCommon.cs @@ -46,6 +46,10 @@ public static CallTargetState OnMethodBegin(TTarget instance, return new CallTargetState(scope); } } + else + { + headers.Remove(HttpHeaderNames.TracingEnabled); + } return CallTargetState.GetDefault(); } diff --git a/tracer/src/Datadog.Trace/ClrProfiler/AutoInstrumentation/Http/WebRequest/WebRequestCommon.cs b/tracer/src/Datadog.Trace/ClrProfiler/AutoInstrumentation/Http/WebRequest/WebRequestCommon.cs index 49fa23817f76..5e5ac74cec9e 100644 --- a/tracer/src/Datadog.Trace/ClrProfiler/AutoInstrumentation/Http/WebRequest/WebRequestCommon.cs +++ b/tracer/src/Datadog.Trace/ClrProfiler/AutoInstrumentation/Http/WebRequest/WebRequestCommon.cs @@ -41,7 +41,12 @@ public static CallTargetState GetRequestStream_OnMethodBegin(TTarget in /// Returns true if injection was performed, and /false otherwise public static bool TryInjectHeaders(TTarget instance) { - if (instance is HttpWebRequest request && IsTracingEnabled(request)) + if (instance is not HttpWebRequest request) + { + return false; + } + + if (IsTracingEnabled(request)) { var tracer = Tracer.Instance; @@ -74,6 +79,8 @@ public static bool TryInjectHeaders(TTarget instance) } } + request.Headers.Remove(HttpHeaderNames.TracingEnabled); + return false; }