Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
L'esempio ExtendingTracing illustra come estendere la funzionalità di traccia di Windows Communication Foundation (WCF) scrivendo tracce di attività definite dall'utente nel codice client e del servizio. La scrittura di tracce di attività definite dall'utente consente all'utente di creare attività di traccia e raggruppare tracce in unità logiche di lavoro. È anche possibile correlare le attività tramite trasferimenti (all'interno dello stesso endpoint) e propagazione (tra endpoint). In questo esempio la traccia è abilitata sia per il client che per il servizio. Per altre informazioni su come abilitare la traccia nei file di configurazione del client e del servizio, vedere Traccia e registrazione messaggi.
Questo esempio si basa sull'introduzione.
Annotazioni
La procedura di configurazione e le istruzioni di compilazione per questo esempio si trovano alla fine di questo argomento.
Tracciamento e propagazione dell'attività
La traccia attività definita dall'utente consente all'utente di creare le proprie attività di traccia per raggruppare le tracce in unità logiche di lavoro, correlare le attività tramite trasferimenti e propagazione e ridurre il costo delle prestazioni della traccia WCF, ad esempio il costo dello spazio su disco di un file di log.
Aggiungere origini personalizzate
Le tracce definite dall'utente possono essere aggiunte sia al codice client che al codice del servizio. L'aggiunta di origini di traccia ai file di configurazione del client o del servizio consente di registrare e visualizzare queste tracce personalizzate nello strumento Visualizzatore tracce del servizio (SvcTraceViewer.exe). Il codice seguente illustra come aggiungere un'origine di traccia definita dall'utente denominata ServerCalculatorTraceSource al file di configurazione.
<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>
....
Correlare le attività
Per correlare le attività direttamente tra gli endpoint, l'attributo propagateActivity deve essere impostato su true nell'origine di System.ServiceModel traccia. Inoltre, per propagare le tracce senza passare attraverso le attività WCF, è necessario disattivare il tracciamento delle attività ServiceModel. Questo può essere visualizzato nell'esempio di codice seguente.
Annotazioni
La disattivazione di ServiceModel Activity Tracing non equivale ad avere il livello di traccia, indicato dalla switchValue proprietà , impostato su off.
<system.diagnostics>
<sources>
<source name="System.ServiceModel" switchValue="Warning" propagateActivity="true">
...
</source>
</sources>
</system.diagnostics>
Ridurre i costi delle prestazioni
L'impostazione ActivityTracing su disattivata nell'origine di traccia System.ServiceModel genera un file di traccia che contiene solo tracce di attività definite dall'utente, senza alcuna traccia dell'attività ServiceModel inclusa. L'esclusione delle tracce di attività ServiceModel comporta un file di log molto più piccolo. Tuttavia, l'opportunità di correlare le tracce di elaborazione WCF viene persa.
Configurare, compilare ed eseguire l'esempio
Assicurati di aver eseguito la procedura di installazione di One-Time per gli esempi di Windows Communication Foundation.
Per compilare l'edizione C# o Visual Basic .NET della soluzione, seguire le istruzioni in Compilazione degli esempi di Windows Communication Foundation.
Per eseguire l'esempio in un solo computer o tra computer diversi, seguire le istruzioni in Esecuzione degli esempi di Windows Communication Foundation.