【问题标题】:Tracing and diagnostics for System.Data.SQLConnectionSystem.Data.SQLConnection 的跟踪和诊断
【发布时间】:2009-09-14 05:11:59
【问题描述】:

您好,我想知道当您需要跟踪支持时,是否可以像使用 WCF 一样通过 app.config 文件对 SQLConnection 进行跟踪/诊断(如下所示)?

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

我正在尝试从我的应用程序中拦截和记录 SQL 请求(无需在 SQLConnection 上创建 IDBConnection shim 以在请求执行时捕获请求)

有什么想法吗?

【问题讨论】:

  • 要进行跟踪工作绝对是疯狂的工作量:( ADO.NET 团队一定忘记了System.Diagnostics
  • 我想问同样的问题。你找到答案了吗?

标签: .net sql debugging


【解决方案1】:

Microsoft 建议的标准方法非常复杂且设计不佳。这是解决方法:Data Access Tracing in .NET (Universal approach)。这个想法是通过跟踪器封装(代理)所有 Db 访问服务(DbConnection、DbCommand、...)。这适用于任何 DbConnection 提供程序以及实体框架。

【讨论】:

  • “真的很复杂”说得客气一点。我绝不会尝试将其投入生产以解决紧迫问题。看来你的(伟大的和通用的)解决方案只在DbConnection/DbCommand 级别进行跟踪,所以更接近实际的网络连接(它们是池化的并且与DbConnection 实例不同)我猜超出范围了吗?
  • 不确定实际网络连接是什么意思?跟踪与 Db 服务器的网络通信?为此,我相信您可以使用标准网络跟踪:msdn.microsoft.com/en-us/library/ty48b824(v=vs.110).aspx
  • 是的,网络连接,为了追踪断开连接。我刚刚尝试了网络跟踪,但无济于事。不幸的是,SqlConnection 所做的一切都没有被记录,但是通过直接使用套接字进行的双重检查表明跟踪设置正确。
猜你喜欢
  • 2011-04-04
  • 2011-11-21
  • 2011-02-24
  • 1970-01-01
  • 2012-04-17
  • 1970-01-01
  • 2018-01-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多