2009-09-14 4 views
7

Salut, je me demandais si il est possible d'autoriser le suivi/diagnostic sur une SQLConnection via le fichier app.config comme vous pouvez le faire avec WCF lorsque vous avez besoin de la fonction de suivi (comme ci-dessous)?Traçage et diagnostics pour System.Data.SQLConnection

<system.diagnostics> 
    <switches> 
     <add name="DataMessagesSwitch" value="0" /> 
     <add name="TraceLevelSwitch" value="0" /> 
    </switches> 
</system.diagnostics> 

J'essaie d'intercepter et enregistrer les requêtes SQL à partir de mon application (sans avoir besoin de créer une cale IDbConnection sur une SQLConnection pour capturer les requêtes car elles sont exécutées)

Toute pensée?

+1

Une quantité de travail absolument insensée pour obtenir le suivi :(L'équipe ADO.NET doit avoir oublié 'System.Diagnostics' –

+0

Je veux poser la même question Avez-vous trouvé la réponse à cette question? –

Répondre

2
+1

Salut, je Vérifié cet article, il nécessite un peu de dicking autour, faire des entrées de registre ect, en utilisant WMI, la mise en place de filtres pour s'assurer que vous tracez seulement votre seule application.J'espérais qu'il y avait quelque chose comme l'option WCF précédemment mentionné qui pourrait être tourné dans les fichiers de configuration, pas forcément! – mrwayne

1

L'approche standard Microsoft suggère est vraiment compliqué et mal conçu. Voici la solution de contournement: Data Access Tracing in .NET (Universal approach). L'idée est encapsulée enveloppant (proxy) tous les services d'accès Db (DbConnection, DbCommand, ...) par un traceur. Cela fonctionne avec tous les fournisseurs DbConnection et avec Entity Framework.

+0

"vraiment compliqué" c'est le moins que l'on puisse dire, je vais essayer de mettre ça en production pour aller au fond d'un problème pressant. solution ne trace que des traces au niveau 'DbConnection' /' DbCommand', ce qui permet de se rapprocher des connexions réseau réelles (qui sont regroupées et différent des instances de 'DbConnection') est je devine hors de portée? –

+0

Vous ne savez pas ce que vous entendez par connexions réseau réelles? traçage de la communication réseau avec le serveur Db? Pour cela, je crois que vous pouvez utiliser le suivi réseau standard: https://msdn.microsoft.com/en-us/library/ty48b824(v=vs.110).aspx –

+0

Oui, les connexions réseau, afin de tracer les déconnexions. J'ai juste essayé le traçage de réseau, en vain. Malheureusement, rien de ce que fait SqlConnection n'est enregistré, mais une double vérification en utilisant directement les sockets a montré que le traçage était correctement configuré. –

Questions connexes