Extending Tracing
Cet exemple montre comment étendre la fonctionnalité de suivi Windows Communication Foundation (WCF) en écrivant les suivis de l'activité définie par l'utilisateur dans le code du client et du service. Cela permet à l'utilisateur de créer des activités de suivi et de regrouper les suivis dans des unités de travail logiques. Il est également possible de mettre en corrélation des activités à travers des transferts (au sein du même point de terminaison) et la propagation (sur plusieurs points de terminaison). Dans cet exemple, le suivi est activé à la fois pour le client et pour le service. Pour plus d'informations sur l'activation du suivi dans les fichiers de configuration du client et du service, consultez Tracing and Message Logging.
Cet exemple est basé sur Getting Started, exemple.
Remarque : |
---|
La procédure d'installation ainsi que les instructions de génération correspondant à cet exemple figurent en fin de rubrique. |
Remarque : |
---|
Les exemples peuvent déjà être installés sur votre ordinateur. Recherchez le répertoire (par défaut) suivant avant de continuer.
<LecteurInstall>:\WF_WCF_Samples
Si ce répertoire n'existe pas, rendez-vous sur la page (éventuellement en anglais) des exemples Windows Communication Foundation (WCF) et Windows Workflow Foundation (WF) pour .NET Framework 4 pour télécharger tous les exemples Windows Communication Foundation (WCF) et WF. Cet exemple se trouve dans le répertoire suivant.
<LecteurInstall>:\WF_WCF_Samples\WCF\Basic\Management\ExtendingTracing
|
Suivi et propagation d'activité
Le suivi d'activité défini par l'utilisateur permet à l'utilisateur de créer ses propres activités de suivi pour regrouper les suivis dans les unités de travail logiques, mettre en corrélation des activités par transfert et propagation et amoindrir les coûts de performance du suivi WCF (le coût en espace disque d'un fichier journal, par exemple).
Ajout de sources personnalisées
Les suivis définis par l'utilisateur peuvent être ajoutés à la fois au code du client et du service. L'ajout de sources de suivi aux fichiers de configuration du client ou du service permet l'enregistrement et l'affichage de ces suivis personnalisés dans l'Service Trace Viewer Tool (SvcTraceViewer.exe). Le code suivant montre comment ajouter une source de suivi définie par l'utilisateur nommée ServerCalculatorTraceSource
au fichier de configuration.
<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>....
....
Mise en corrélation des activités
Pour mettre directement en corrélation des activités sur plusieurs points de terminaison, l'attribut propagateActivity
doit avoir la valeur true
dans la source du suivi System.ServiceModel
. En outre, le suivi d'activité ServiceModel doit être désactivé pour propager des suivis sans traverser des activités WCF. C'est ce qu'illustre l'exemple de code suivant.
Remarque : |
---|
La désactivation du suivi d'activité ServiceModel n'équivaut pas à désactiver le niveau de suivi, dénoté par la propriété switchValue .
|
<system.diagnostics>
<sources>
<source name="System.ServiceModel" switchValue="Warning" propagateActivity="true">
...
</source>
</sources>
</system.diagnostics>
Réduction des coûts de performance
Le fait de désactiver ActivityTracing
dans la source de suivi System.ServiceModel
génère un fichier de suivi qui contient uniquement les suivis d'activité définis par l'utilisateur, sans inclure les suivis d'activité ServiceModel. Ainsi, le fichier journal est beaucoup moins volumineux. Toutefois, la possibilité de mettre en corrélation les suivis de traitement WCF est perdue.
Pour configurer, générer et exécuter l'exemple
Assurez-vous d'avoir effectué la procédure figurant à la section Procédure d'installation unique pour les exemples Windows Communication Foundation.
Pour générer l'édition C# ou Visual Basic .NET de la solution, conformez-vous aux instructions figurant dans Génération des exemples Windows Communication Foundation.
Pour exécuter l'exemple dans une configuration à un ou plusieurs ordinateurs, conformez-vous aux instructions figurant dans Running the Windows Communication Foundation Samples.