Erweitern der AblaufverfolgungExtending Tracing

Dieses Beispiel veranschaulicht, wie die Ablaufverfolgungsfunktion von Windows Communication Foundation (WCF)Windows Communication Foundation (WCF) erweitert wird, indem man im Client- und im Dienstcode Aktivitätsablaufverfolgungen schreibt.This sample demonstrates how to extend the Windows Communication Foundation (WCF)Windows Communication Foundation (WCF) tracing feature by writing user-defined activity traces in client and service code. Dies ermöglicht es dem Benutzer, Ablaufverfolgungsaktivitäten zu erstellen und Ablaufverfolgungen in logischen Arbeitseinheiten zu gruppieren.This allows the user to create trace activities and group traces into logical units of work. Es ist auch möglich, Aktivitäten über Übertragungen (innerhalb desselben Endpunkts) und Weitergabe (über verschiedene Endpunkte) zu korrelieren.It is also possible to correlate activities through transfers (within the same endpoint) and propagation (across endpoints). In diesem Beispiel wird Ablaufverfolgung sowohl für den Client als auch den Dienst aktiviert.In this sample, tracing is enabled for both the client and the service. Weitere Informationen zum Aktivieren der Ablaufverfolgung in Konfigurationsdateien von Client und Dienst finden Sie unter Ablaufverfolgung und Nachrichtenprotokollierung.For more information about how to enable tracing in client and service configuration files, see Tracing and Message Logging.

Dieses Beispiel basiert auf der Einstieg.This sample is based on the Getting Started.

Hinweis

Die Setupprozedur und die Buildanweisungen für dieses Beispiel befinden sich am Ende dieses Themas.The set-up procedure and build instructions for this sample are located at the end of this topic.

Wichtig

Die Beispiele sind möglicherweise bereits auf dem Computer installiert.The samples may already be installed on your computer. Suchen Sie nach dem folgenden Verzeichnis (Standardverzeichnis), bevor Sie fortfahren.Check for the following (default) directory before continuing.

<InstallDrive>:\WF_WCF_Samples

Wenn dieses Verzeichnis nicht vorhanden ist, rufen Sie Windows Communication Foundation (WCF) and Windows Workflow Foundation (WF) Samples for .NET Framework 4 auf, um alle Windows Communication Foundation (WCF)Windows Communication Foundation (WCF) - und WFWF -Beispiele herunterzuladen.If this directory does not exist, go to Windows Communication Foundation (WCF) and Windows Workflow Foundation (WF) Samples for .NET Framework 4 to download all Windows Communication Foundation (WCF)Windows Communication Foundation (WCF) and WFWF samples. Dieses Beispiel befindet sich im folgenden Verzeichnis.This sample is located in the following directory.

<InstallDrive>:\WF_WCF_Samples\WCF\Basic\Management\ExtendingTracing

Ablaufverfolgung und AktivitätsweitergabeTracing and Activity Propagation

Mithilfe von benutzerdefinierter Aktivitätsweitergabe kann der Benutzer eigene Ablaufverfolgungsaktivitäten erstellen, um Ablaufverfolgungen in logische Arbeitseinheiten zu gruppieren, Aktivitäten über Übertragungen und Weitergabe zu korrelieren und die Leistungskosten von WCFWCF-Ablaufverfolgung (z. B. die Kosten des von einer Protokolldatei belegten Festplattenspeicherplatzes) zu verringern.User-defined activity tracing allows the user to create their own trace activities to group traces into logical units of work, correlate activities through transfers and propagation, and lessen the performance cost of WCFWCF tracing (for example, the disk space cost of a log file).

Hinzufügen benutzerdefinierter QuellenAdding Custom Sources

Benutzerdefinierte Ablaufverfolgungen können sowohl zu Client- als auch Dienstcode hinzugefügt werden.User-defined traces can be added to both client and service code. Hinzufügen von Ablaufverfolgungsquellen an den Client oder Dienst-Konfigurationsdateien für diese benutzerdefinierte ablaufverfolgungen erfasst und in angezeigt werden können die Service Trace Viewer-Tool (SvcTraceViewer.exe).Adding trace sources to the client or service configuration files allow for these custom traces to be recorded and displayed in the Service Trace Viewer Tool (SvcTraceViewer.exe). Der folgende Code zeigt, wie der Konfigurationsdatei eine benutzerdefinierte Ablaufverfolgungsquelle namens ServerCalculatorTraceSource hinzugefügt wird.The following code shows how to add a user-defined trace source named ServerCalculatorTraceSource to the configuration file.

<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>....  
....  

Korrelieren von AktivitätenCorrelating Activities

Zum Korrelieren von Aktivitäten direkt zwischen Endpunkten muss für das propagateActivity-Attribut in der true-Ablaufverfolgungsquelle der Wert System.ServiceModel festgelegt werden.To correlate activities directly across endpoints, the propagateActivity attribute must be set to true in the System.ServiceModel trace source. Außerdem muss, um Ablaufverfolgungen weiterzugeben, ohne über WCFWCF-Aktivitäten zu gehen, ServiceModel-Aktivitätsablaufverfolgung deaktiviert werden.Also, to propagate traces without going through WCFWCF activities, ServiceModel Activity Tracing must be turned off. Dies ist im folgenden Codebeispiel zu erkennen.This can be seen in the following code example.

Hinweis

Das Deaktivieren von ServiceModel-Aktivitätsablaufverfolgung ist nicht dasselbe, wie die von der switchValue-Eigenschaft angegebene Ablaufverfolgungsebene zu deaktivieren.Turning off ServiceModel Activity Tracing is not the same as having the trace level, denoted by the switchValue property, set to off.

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

    ...  

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

Verringern von LeistungskostenLessening Performance Cost

Wenn ActivityTracing in der System.ServiceModel-Ablaufverfolgungsquelle ausgeschaltet wird, wird eine Ablaufverfolgungsdatei erstellt, die nur benutzerdefinierte Aktivitätsablaufverfolgungen, jedoch keine der ServiceModel-Aktivitätsablaufverfolgungen enthält.Setting ActivityTracing to off in the System.ServiceModel trace source generates a trace file that contains only user-defined activity traces, without any of the ServiceModel activity traces included. Dadurch wird die Protokolldatei deutlich kleiner.This results in a log file of much smaller size. Allerdings verliert man damit die Möglichkeit, WCFWCF-Verarbeitungsablaufverfolgungen zu korrelieren.However, the opportunity to correlate WCFWCF processing traces is lost.

So können Sie das Beispiel einrichten, erstellen und ausführenTo set up, build, and run the sample
  1. Stellen Sie sicher, dass Sie ausgeführt haben die Setupprozedur für die Windows Communication Foundation-Beispiele zum einmaligen.Ensure that you have performed the One-Time Setup Procedure for the Windows Communication Foundation Samples.

  2. Um die C#- oder Visual Basic .NET-Edition der Projektmappe zu erstellen, befolgen Sie die unter Building the Windows Communication Foundation Samplesaufgeführten Anweisungen.To build the C# or Visual Basic .NET edition of the solution, follow the instructions in Building the Windows Communication Foundation Samples.

  3. Um das Beispiel in einer Einzelcomputer- oder computerübergreifenden Konfiguration ausführen möchten, folgen Sie den Anweisungen Ausführen der Windows Communication Foundation-Beispiele.To run the sample in a single- or cross-computer configuration, follow the instructions in Running the Windows Communication Foundation Samples.

Siehe auchSee Also

Überwachen der AppFabric-BeispieleAppFabric Monitoring Samples