C# 如何在.NET Core中生成HttpContext TraceIdentifier?

C# 如何在.NET Core中生成HttpContext TraceIdentifier?,c#,http,asp.net-core,.net-core,C#,Http,Asp.net Core,.net Core,HttpContext TraceIdentifier(也称为关联Id)是如何生成的 我通过控制器请求一个页面,该控制器提供以下TraceId: 0HLEACIU86PT6:0000000D 页面触发一个ajax调用,该调用具有以下TraceId: 0HLEACIU86PT7:00000005 正如你所看到的,它们非常相似。它是基于时间的吗 为什么我没有得到同样的追踪器 如何确保相同的TraceIdentifier?它是DateTime.UtcNow.Ticksbase32编码的 Kestrel

HttpContext TraceIdentifier(也称为关联Id)是如何生成的

我通过控制器请求一个页面,该控制器提供以下TraceId:
0HLEACIU86PT6:0000000D

页面触发一个ajax调用,该调用具有以下TraceId:
0HLEACIU86PT7:00000005

正如你所看到的,它们非常相似。它是基于时间的吗

为什么我没有得到同样的追踪器


如何确保相同的TraceIdentifier?

它是
DateTime.UtcNow.Ticks
base32编码的


Kestrel将请求ID生成为{ConnectionId}:{request number}。连接id是使用字母表1-9和a-V的long的base32编码版本。请求计数是通过该连接的请求数。特定连接上的第n个请求是{ConnectionId}:{n}


页面请求和AJAX请求是两个独立的请求,因此TraceId不同。Kestrel中不使用此实现。以及如何生成
ConnectionId
?@DavidFoll是否有方法覆盖Kestrel如何生成CorrelationId?我希望它始终使用GUID。Hi@DaveBlack HttpContext.TraceIdentifier已定义get和set,因此您可以在中间件中覆盖它