次の方法で共有


W3C 標準に更新された既定のトレース コンテキスト 伝達子

既定のトレース コンテキスト 伝達子は、レガシ 伝達子から W3C 伝達子に切り替わりました。 新しい伝達子は、baggageではなくCorrelation-Context ヘッダーを使用し、W3C 準拠のエンコードを適用し、W3C 形式のトレース親 ID のみをサポートします。

導入されたバージョン

.NET 10

以前の動作

以前は、 DistributedContextPropagator.CreateDefaultPropagator() メソッドはレガシ 伝達子のインスタンスを返しました。 既定では、 DistributedContextPropagator.Current はこのレガシ インスタンスに設定されています。

新しい動作

.NET 10 以降、 DistributedContextPropagator.CreateDefaultPropagator() メソッドは W3C 伝達子のインスタンスを返します。 既定では、 DistributedContextPropagator.Current はこの W3C インスタンスに設定されます。

例としてデフォルトのプロパゲーターをレガシープロパゲーターに設定する:

DistributedContextPropagator.Current = DistributedContextPropagator.CreatePreW3CPropagator();

破壊的変更の種類

この変更は 動作の変更です。

変更の理由

この変更により、W3C トレース コンテキストと手荷物の仕様に完全に準拠します。 W3C 伝達子は、W3C 標準に合わせて、トレース親、トレース状態、手荷物キーと値に厳密な書式設定を適用します。 従来のプロパゲーターはより寛大で、手荷物の伝播のために非標準の Correlation-Context ヘッダーを使用しました。

詳細については、次の GitHub の問題を参照してください。

従来の動作を保持する必要がある場合は、 DistributedContextPropagator.CreatePreW3CPropagator() メソッドを使用してレガシ 伝達子インスタンスを取得します。 次に示すように、それを現在の伝達子として設定します。

DistributedContextPropagator.Current = DistributedContextPropagator.CreatePreW3CPropagator();

影響を受ける API