J'ai récemment lu Conseils de Chris Love sur l'utilisation du traçage de la WCF pour vous aider à résoudre le dépannage . Cependant, nous ne voulons pas vraiment expédier plusieurs fichiers Idéalement, j'aimerais que mon application vérifie le registre et activer uniquement le traçage lorsqu'une certaine valeur était présente. P>
Il allume la traçage en ajoutant de nouvelles sections de XML au fichier app.config code> et j'ai depuis vu Recommandations similaires ici pour la même technique . P>
app.config code>.
Et nous ne voulons vraiment pas que nos clients les modifierent sur des systèmes de production! P>
3 Réponses :
Voici un lien vers une question de faire quelque chose de similaire. Le gars qui a posé sa question semblait avoir un certain contrôle programmatique sur le traçage de la WCF, mais pas tous. Je ne le fais pas s'il l'avait jamais travaillé à sa satisfaction ou non. P>
Tracing WCF dans le code ne suit pas Paramètres Messagelogging P>
Peut-être que cela vous aidera peut-être pas. P>
La traçage de la WCF se branche dans les classes System.Diagnostics dans .NET pendant une longue période. Il y a une API pour tout ce qui est fait en XML. Par exemple Créer et initialiser les écouteurs de trace . P>
Pour la vue d'ensemble générale Faites défiler jusqu'au bas de la classe de trace documentation. P>
Ma suggestion est d'utiliser un Voici quelques échantillons de code que vous pouvez utiliser comme point de départ. Il existe une classe d'assistance statique qui détermine globalement et une fois au cours de la durée de vie d'une application si le suivi doit être activé ou désactivé: p> dans l'app.config vous configureriez le Tracefilter comme ceci: p> ** ** p> Veuillez noter qu'un comportement similaire pourrait être obtenu en écrivant une personnalisation Interrupteur de trajet . La principale différence serait qu'une tracewitch est appliquée à une traceource et un tracefilter à un traceliste. Ce serait légèrement plus impliqué, cependant. P> p> TraceFilter Code> que vous appliquez à tous les auditeurs attachés à la WCF Tracesources (c'est-à-dire "System.ServiceModel", "System.ServiceModel.MESSAGELOGGEGGGE"). À l'intérieur de la méthode
CODEFILTER DE TRACEFILTER () CODE>, vous pouvez alors supprimer de manière conditionnelle la traçage en fonction des informations disponibles sur l'application.
Excellente réponse. Ceci est assez proche de ce dont j'ai besoin, mais pour une raison quelconque, le fichier journal semble toujours grandir même lorsque je définit _shouldtracewcf code> sur false.
Cela semble étrange. Pourriez-vous poster la section
Le
system.servicemodel.messagelogging code> écrire dans un fichier séparé. Et un
tracefilter code> - le messagelogging One éteint (le fichier a été créé mais resté 0 octets) mais le servicemodel code> était encore peuplé.
J'ai abandonné le travail à ce sujet pour l'instant et je viens de le rendre aussi simple que possible pour les clients / ingénieurs de terrain d'éditer l'app.config (à l'aide de Named
<. / code> section). Je vous récompense la prime comme vous avez eu le plus proche de la solution. Merci de votre aide.
Stackoverflow.com/a/34283667/187650 Vous pouvez l'activer à l'aide de WMI, voir le lien.