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

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 su true o 1.

API interessate