WCF頻道以某種方式進入客戶端的故障狀態,WCF日誌顯示哪些內容可以幫助我們追蹤原因?我應該啓用什麼WCF日誌記錄來幫助追蹤通道出現故障的原因?
如何從代碼啓用給定日誌記錄? (信道等是在代碼設置,而不是在每一側上一個配置文件中)
編輯:雙方都Winforms中的應用程序,所以不具有web.config文件,但是我有一個應用程序.config文件。
WCF頻道以某種方式進入客戶端的故障狀態,WCF日誌顯示哪些內容可以幫助我們追蹤原因?我應該啓用什麼WCF日誌記錄來幫助追蹤通道出現故障的原因?
如何從代碼啓用給定日誌記錄? (信道等是在代碼設置,而不是在每一側上一個配置文件中)
編輯:雙方都Winforms中的應用程序,所以不具有web.config文件,但是我有一個應用程序.config文件。
您不需要添加登錄代碼。 在兩個服務(web.config中)和客戶端(app.config)中添加此:
<system.diagnostics>
<sources>
<source name="System.ServiceModel" switchValue="Verbose, ActivityTracing">
<listeners>
<add name="xml"/>
</listeners>
</source>
<source name="System.ServiceModel.MessageLogging" switchValue="Verbose">
<listeners>
<add name="xml"/>
</listeners>
</source>
</sources>
<sharedListeners>
<add name="xml" type="System.Diagnostics.XmlWriterTraceListener"
initializeData="c:\logs\logfilename.svclog"/>
</sharedListeners>
<trace autoflush="true"/>
</system.diagnostics>
您應該使用服務跟蹤查看器(SvcTraceViewer.exe,包括在SDK v6.0a)查看文件。
在黑暗中出現了一點點,但這可能更多的是調試問題,而不是日誌記錄。
您可能需要檢查您的連接是否正確關閉或合併。我使用命令行中的netstat來跟蹤服務的開放連接,以驗證連接在我認爲應該關閉時關閉。
謝謝,不像log4net,system.diagnostics似乎不創建文件夾,因此,上述不工作,直到我創建一個c:\ logs文件夾。 – 2009-12-17 13:25:01
這是正確的。對不起,我忘了提到這一點。 – 2009-12-17 13:39:50