共用方式為


擴充追蹤

ExtendTracing 範例示範如何在用戶端和服務程式代碼中撰寫使用者定義的活動追蹤,以擴充 Windows Communication Foundation (WCF) 追蹤功能。 撰寫使用者定義的活動追蹤可讓使用者建立追蹤活動,並將追蹤分組為工作邏輯單元。 您也可以透過傳輸(在相同端點內)和傳播(跨端點)相互關聯活動。 在此範例中,客戶端和服務都會啟用追蹤。 如需如何在用戶端和服務組態檔中啟用追蹤的詳細資訊,請參閱 追蹤和訊息記錄

此範例是以 用戶入門為基礎。

備註

此範例的設定程式和建置指示位於本主題結尾。

追蹤和活動傳播

使用者定義的活動追蹤可讓使用者建立自己的追蹤活動,將追蹤分組為工作邏輯單元、透過傳輸和傳播將活動相互關聯,以及降低WCF追蹤的效能成本(例如記錄檔的磁碟空間成本)。

新增自訂來源

使用者定義的追蹤可以新增至客戶端和服務端程式碼。 將追蹤來源新增至用戶端或服務組態檔,可讓這些自定義追蹤記錄並顯示在 服務追蹤查看器工具 (SvcTraceViewer.exe) 中。 下列程式代碼示範如何將名為 ServerCalculatorTraceSource 的使用者定義追蹤來源新增至組態檔。

<system.diagnostics>
    <sources>
        <source name="System.ServiceModel" switchValue="Warning" propagateActivity="true">
            <listeners>
                <add type="System.Diagnostics.DefaultTraceListener" name="Default">
                    <filter type="" />
                </add>
                <add name="xml">
                    <filter type="" />
                </add>
            </listeners>
        </source>
        <source name="ServerCalculatorTraceSource" switchValue="Information,ActivityTracing">
            <listeners>
                <add type="System.Diagnostics.DefaultTraceListener" name="Default">
                    <filter type="" />
                </add>
                <add name="xml">
                    <filter type="" />
                </add>
            </listeners>
        </source>
    </sources>
    <sharedListeners>
       <add initializeData="C:\logs\ServerTraces.svclog" type="System.Diagnostics.XmlWriterTraceListener"
        name="xml" traceOutputOptions="Callstack">
            <filter type="" />
        </add>
    </sharedListeners>
    <trace autoflush="true" />
</system.diagnostics>
....

讓活動相互關聯

若要在不同的端點之間直接關聯活動,必須在 propagateActivity 追蹤來源中將 true 屬性設定為 System.ServiceModel。 此外,若要傳播追蹤而不經過 WCF 活動,必須關閉 ServiceModel 活動追蹤功能。 這可以在下列程式代碼範例中看到。

備註

關閉 ServiceModel 活動追蹤與將由 switchValue 屬性表示的追蹤層級設定為 off 並不相同。

<system.diagnostics>
    <sources>
      <source name="System.ServiceModel" switchValue="Warning" propagateActivity="true">

    ...

       </source>
    </sources>
</system.diagnostics>

降低效能成本

在追蹤來源中ActivityTracing設定System.ServiceModel為 off 時,會產生只包含使用者定義活動追蹤的追蹤檔案,而不包含任何 ServiceModel 活動追蹤。 排除 ServiceModel 活動追蹤會導致較小的記錄檔。 不過,將 WCF 處理追蹤相互關聯的機會已經失去。

設定、建置和執行範例

  1. 請確定您已針對 Windows Communication Foundation 範例 執行One-Time 安裝程式。

  2. 若要建置解決方案的 C# 或 Visual Basic .NET 版本,請遵循建置 Windows Communication Foundation 範例 中的指示。

  3. 若要在單一或跨計算機組態中執行範例,請遵循 執行 Windows Communication Foundation 範例中的指示。

另請參閱