Il valore predefinito di ActivityIdFormat è W3C
Il formato dell'identificatore predefinito per l'attività (Activity.DefaultIdFormat) ora è ActivityIdFormat.W3C.
Descrizione delle modifiche
Il formato dell'ID attività W3C è stato introdotto in .NET Core 3.0 come alternativa al formato ID gerarchico. Tuttavia, per mantenere la compatibilità, il formato W3C non è stato impostato come predefinito fino a .NET 5. Il valore predefinito è stato modificato in .NET 5 perché il formato W3C è stato ratificato e acquisito trazione tra più implementazioni del linguaggio.
Se l'app è destinata a una piattaforma diversa da .NET 5 o versione successiva, si verifica il comportamento precedente, dove Hierarchical è il formato predefinito. Questo valore predefinito si applica alle piattaforme net45+, netstandard1.1+ e netcoreapp (1.x, 2.x e 3.x). In .NET 5 e versioni successive Activity.DefaultIdFormat è impostato su ActivityIdFormat.W3C.
Versione introdotta
5.0
Azione consigliata
Se l'applicazione è indipendente dall'identificatore usato per la traccia distribuita, non è necessaria alcuna azione. Librerie come ASP.NET Core e HttpClient possono utilizzare o propagare entrambe le versioni di ActivityIdFormat.
Se è necessaria l'interoperabilità con i sistemi esistenti o i sistemi attuali si basano sul formato dell'identificatore, è possibile mantenere il comportamento precedente impostando DefaultIdFormat su ActivityIdFormat.Hierarchical. In alternativa, è possibile impostare un'opzione AppContext in uno dei tre modi seguenti:
Nel file di progetto.
<ItemGroup> <RuntimeHostConfigurationOption Include="System.Diagnostics.DefaultActivityIdFormatIsHierarchial" Value="true" /> </ItemGroup>
Nel file runtimeconfig.json.
{ "runtimeOptions": { "configProperties": { "System.Diagnostics.DefaultActivityIdFormatIsHierarchial": true } } }
Tramite una variabile di ambiente.
Impostare
DOTNET_SYSTEM_DIAGNOSTICS_DEFAULTACTIVITYIDFORMATISHIERARCHIAL
sutrue
o 1.