2009-12-17 46 views

回答

4

您不需要添加登錄代碼。 在兩個服務(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)查看文件。

+0

謝謝,不像log4net,system.diagnostics似乎不創建文件夾,因此,上述不工作,直到我創建一個c:\ logs文件夾。 – 2009-12-17 13:25:01

+0

這是正確的。對不起,我忘了提到這一點。 – 2009-12-17 13:39:50

1

您仍然可以使用system.diagnostics元素啓用從web.config進行日誌記錄(即使您的通道是在代碼中設置的)。

這裏有一些MSDN鏈接:(1)(2)

你也可以看看>here <分步演練。

+0

對不起,我沒有說,雙方都是WinForms應用程序,所以我沒有web.config文件,但我有一個app.config文件。 – 2009-12-17 10:42:35

+0

你可以在app.config中做同樣的事情 – 2009-12-17 11:01:17

0

在黑暗中出現了一點點,但這可能更多的是調試問題,而不是日誌記錄。

您可能需要檢查您的連接是否正確關閉或合併。我使用命令行中的netstat來跟蹤服務的開放連接,以驗證連接在我認爲應該關閉時關閉。