System.Net.Http.HttpClient添加Request-Id标头

时间:2018-03-07 13:40:17

标签: c# asp.net-core dotnet-httpclient

我注意到在ASP.Net Core web api控制器中使用HttpClient时,它会向它发送的请求添加Request-Id标头。当HttpClient用于例如{1}}时,不会发生这种情况。一个.Net核心控制台应用程序。

我认为这样做是为了实现相关(或跟踪)ID,但它是如何工作的?究竟是什么添加了这个标题?

另外如何删除它?我已经实现了自己的相关ID。

1 个答案:

答案 0 :(得分:1)

当RestSharp发出的所有请求也都包含Request-Id时,我偶然发现了这个问题。 solution mentioned in the comments也为我工作,值得得到解答:

Startup.cs

private void DisableCorrelationIds(IServiceCollection services)
{
    var module = services.FirstOrDefault(t =>
        t.ImplementationFactory?.GetType() == typeof(Func<IServiceProvider, DependencyTrackingTelemetryModule>));
    if (module != null)
    {
        services.Remove(module);
        services.AddSingleton<ITelemetryModule>(provider => new DependencyTrackingTelemetryModule
        {
            SetComponentCorrelationHttpHeaders = false
        });
    }
}

public void ConfigureServices(IServiceCollection services)
{
    // other stuff may come here
    DisableCorrelationIds(services);
}
相关问题