2009-09-14 39 views
7

嗨,我想知道是否有离开,允许通过app.config文件的SQLConnection跟踪/诊断很像你可以用WCF当你需要跟踪支持(如下)?跟踪和诊断System.Data.SQLConnection

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

我试图拦截,并从我的应用程序内登录SQL请求(而无需执行时为它们创造过的SQLConnection的垫片的IDbConnection捕捉请求)

有什么想法?

+1

绝对疯狂的工作量来追踪去:(ADO.NET团队必须已经忘记了'System.Diagnostics'。 – 2010-06-17 13:22:13

+0

我想问同样的问题。你有没有找到答案? – 2015-04-20 08:28:11

回答

2
+1

嗨,我检查了那篇文章,它需要相当多的时间,使用WMI进行注册表登录等等,设置过滤器以确保你只能跟踪你的单个应用程序。我希望有类似前面提到的WCF选项可以转向在配置文件中,显然不是! – mrwayne 2009-09-14 22:45:06

1

Microsoft建议的标准方法非常复杂且设计不佳。解决方法如下:Data Access Tracing in .NET (Universal approach)。这个想法被一个示踪器封装(代理)所有的Db访问服务(DbConnection,DbCommand,...)。这适用于任何DbConnection提供者和实体框架。

+0

“真的很复杂”是把它放在温和的位置上,没有办法,我会试着把它用在生产中去解决紧迫的问题。解决方案仅在'DbConnection' /'DbCommand'级追踪,因此更接近实际的网络连接并且与'DbConnection'实例不同)我猜是超出了范围? – 2015-03-18 01:40:32

+0

不确定您的实际网络连接是什么意思?跟踪Db服务器的网络通信?为此,我相信您可以使用标准网络跟踪:https://msdn.microsoft.com/en-us/library/ty48b824(v=vs.110).aspx – 2015-03-18 16:32:40

+0

是的,网络连接,以便跟踪断开连接。我只是尝试网络追踪,无济于事。不幸的是SqlConnection没有记录,但直接使用套接字进行双重检查表明跟踪设置正确。 – 2015-03-18 23:30:14