Freigeben über


Standard-Trace-Kontextpropagator wurde auf den W3C-Standard aktualisiert

Der standardmäßige Kontextdistributionspropagator wurde vom Legacy-Propagator zum W3C-Propagator ersetzt. Der neue Propagator verwendet den baggage-Header anstelle von Correlation-Context, erzwingt eine W3C-konforme Codierung und unterstützt nur W3C-formatierte Trace-Parent-IDs.

Eingeführte Version

.NET 10

Vorheriges Verhalten

Zuvor hat die DistributedContextPropagator.CreateDefaultPropagator() Methode eine Instanz des Legacy-Verteilungsmoduls zurückgegeben. Standardmäßig wurde DistributedContextPropagator.Current auf diese Legacyinstanz festgelegt.

Neues Verhalten

Ab .NET 10 gibt die DistributedContextPropagator.CreateDefaultPropagator() Methode eine Instanz des W3C-Verteilungsmoduls zurück. DistributedContextPropagator.Current ist standardmäßig auf diese W3C-Instanz eingestellt.

Beispiel für das Festlegen des Standard-Propagators auf den Legacy-Propagator:

DistributedContextPropagator.Current = DistributedContextPropagator.CreatePreW3CPropagator();

Art der einschneidenden Änderung

Diese Änderung ist eine Verhaltensänderung.

Grund für Änderung

Diese Änderung gewährleistet die vollständige Einhaltung der W3C Trace Context- und Gepäckspezifikationen. Der W3C-Propagator erzwingt strenge Formatierungen für Trace-Parent, Trace-State und Baggage-Schlüssel und -werte, die den W3C-Standards entsprechen. Der Legacy-Vermehrungsmodul war lenienter und verwendete den nicht standardmäßigen Correlation-Context Header für die Gepäckverteilung.

Weitere Details finden Sie in den folgenden GitHub-Problemen:

Wenn Sie das Legacyverhalten beibehalten müssen, verwenden Sie die DistributedContextPropagator.CreatePreW3CPropagator() Methode, um die Legacyverteilungsinstanz abzurufen. Legen Sie ihn wie unten dargestellt als aktuellen Verteilungsmodul fest:

DistributedContextPropagator.Current = DistributedContextPropagator.CreatePreW3CPropagator();

Betroffene APIs