2009-09-14 67 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