web-dev-qa-db-ja.com

HttpContext TraceIdentifierは.netコアでどのように生成されますか?

HttpContext TraceIdentifier、別名Correlation-Idはどのように生成されますか?

次のTraceIdを提供するコントローラーを介してページを要求します:0HLEACIU86PT6:0000000D

このページは、次のTraceIdを持つajax呼び出しを起動します:0HLEACIU86PT7:00000005

ご覧のとおり、それらは非常に似ています。時間に基づいていますか?

同じTraceIdentifierを取得できなかったのはなぜですか?

同じTraceIdentifierを確認するにはどうすればよいですか?

12
DarthVader

Kestrelは、リクエストIDを{ConnectionId}:{リクエスト番号}として生成します。接続IDは、アルファベット1〜9、およびA〜Vを使用したlongのbase32エンコードバージョンです。要求カウントは、その接続を介した要求の数です。特定の接続でのn番目のリクエストは{ConnectionId}:{n}です

https://github.com/aspnet/KestrelHttpServer/blob/a48222378b8249a26b093b5b835001c7c7b45815/src/Kestrel.Core/Internal/Infrastructure/CorrelationIdGenerator.cs

https://github.com/aspnet/KestrelHttpServer/blob/0aff4a0440c2f393c0b98e9046a8e66e30a56cb0/src/Kestrel.Core/Internal/Http/Http1Connection.cs#L446

22
davidfowl
2
Konrad