Domyślny format ActivityIdFormat to W3C
Domyślny format identyfikatora działania (Activity.DefaultIdFormat) to teraz ActivityIdFormat.W3C.
Opis zmiany
Format identyfikatora działania W3C został wprowadzony na platformie .NET Core 3.0 jako alternatywę dla formatu identyfikatora hierarchicznego. Jednak aby zachować zgodność, format W3C nie został ustawiony jako domyślny do czasu platformy .NET 5. Wartość domyślna została zmieniona na platformie .NET 5, ponieważ format W3C został ratyfikowany i zyskał przyczepność w wielu implementacjach języka.
Jeśli aplikacja jest przeznaczona dla platformy innej niż .NET 5 lub nowsza, będzie ona używać starego zachowania, gdzie Hierarchical jest formatem domyślnym. To ustawienie domyślne dotyczy platform net45+, netstandard1.1+i netcoreapp (1.x, 2.x i 3.x). W programie .NET 5 lub nowszym Activity.DefaultIdFormat ustawiono wartość ActivityIdFormat.W3C.
Wprowadzona wersja
5,0
Zalecana akcja
Jeśli aplikacja jest niezależna od identyfikatora używanego do śledzenia rozproszonego, nie jest wymagana żadna akcja. Biblioteki, takie jak ASP.NET Core, HttpClient mogą wykorzystywać lub propagować obie wersje programu ActivityIdFormat.
Jeśli potrzebujesz współdziałania z istniejącymi systemami lub bieżących systemów zależy od formatu identyfikatora, możesz zachować stare zachowanie, ustawiając wartość DefaultIdFormat .ActivityIdFormat.Hierarchical Alternatywnie można ustawić przełącznik AppContext na jeden z trzech sposobów:
W pliku projektu.
<ItemGroup> <RuntimeHostConfigurationOption Include="System.Diagnostics.DefaultActivityIdFormatIsHierarchial" Value="true" /> </ItemGroup>
W pliku runtimeconfig.json.
{ "runtimeOptions": { "configProperties": { "System.Diagnostics.DefaultActivityIdFormatIsHierarchial": true } } }
Za pomocą zmiennej środowiskowej.
Ustaw
DOTNET_SYSTEM_DIAGNOSTICS_DEFAULTACTIVITYIDFORMATISHIERARCHIAL
wartośćtrue
lub 1.