我注意到在ASP.Net Core web api控制器中使用HttpClient
时,它会向它发送的请求添加Request-Id
标头。当HttpClient
用于例如{1}}时,不会发生这种情况。一个.Net核心控制台应用程序。
我认为这样做是为了实现相关(或跟踪)ID,但它是如何工作的?究竟是什么添加了这个标题?
另外如何删除它?我已经实现了自己的相关ID。
答案 0 :(得分:1)
当RestSharp发出的所有请求也都包含Request-Id
时,我偶然发现了这个问题。 solution mentioned in the comments也为我工作,值得得到解答:
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);
}