Share via


預設 ActivityIdFormat 為 W3C

活動 (Activity.DefaultIdFormat) 的預設識別碼格式現在改為 ActivityIdFormat.W3C

變更描述

W3C 活動識別碼格式原本在 .NET Core 3.0 中推出,作為階層式識別碼格式的替代方案。 然而,為保留相容性,W3C 格式一直到 .NET 5 才成為預設值。 .NET 5 的預設值變更,因為 W3C 格式已經獲得認可,且在多個語言實作中獲得引動。

如果應用程式以 .NET 5 或更新版本以外的平台為目標,則會經歷舊版行為,也就是以 Hierarchical 為預設格式。 這項預設值適用於 net45+、netstandard1.1+ 和 netcoreapp (1.x、2.x 和 3.x) 平台。 在 .NET 5 和更新版本中,Activity.DefaultIdFormat 會設為 ActivityIdFormat.W3C

導入的版本

5.0

如果您的應用程式與用於分散式追蹤的識別碼無關,則不需要採取任何動作。 ASP.NET Core 等程式庫與 HttpClient 可以取用或傳播這兩個版本的 ActivityIdFormat

如果您需要與現有系統具備互通性,或現有系統依賴識別碼的格式,則可將 DefaultIdFormat 設定為 ActivityIdFormat.Hierarchical,藉此保留舊版行為。 或者,您也可用以下三種方法的其中之一來設定 AppContext 參數:

  • 在專案檔中。

    <ItemGroup>
      <RuntimeHostConfigurationOption Include="System.Diagnostics.DefaultActivityIdFormatIsHierarchial" Value="true" />
    </ItemGroup>
    
  • 在 runtimeconfig.json 檔案中。

    {
        "runtimeOptions": {
            "configProperties": {
                "System.Diagnostics.DefaultActivityIdFormatIsHierarchial": true
            }
        }
    }
    
  • 透過環境變數。

    DOTNET_SYSTEM_DIAGNOSTICS_DEFAULTACTIVITYIDFORMATISHIERARCHIAL 設定為 true 或 1。

受影響的 API