2011-10-13 61 views
1

如何在WCF中啓用對任何異常的追蹤(無論處理還是未處理)?這裏是我配置的代碼:有什麼方法可以跟蹤WCF中的所有異常嗎?

<system.diagnostics> 
    <sources> 
     <source name="System.ServiceModel" switchValue="Error,ActivityTracing" 
     propagateActivity="true"> 
     <listeners> 
      <add type="System.Diagnostics.DefaultTraceListener" name="Default"> 
      <filter type="" /> 
      </add> 
      <add name="ServiceModelTraceListener"> 
      <filter type="" /> 
      </add> 
     </listeners> 
     </source> 
    </sources> 
    <sharedListeners> 
     <add initializeData="tracelog.svclog" 
     type="System.Diagnostics.XmlWriterTraceListener" 
     name="ServiceModelTraceListener" traceOutputOptions="DateTime, Timestamp, Callstack"> 
     <filter type="" /> 
     </add> 
    </sharedListeners> 
    </system.diagnostics> 

但是,然後我嘗試在SvcTraceViewer中看到任何異常我沒有看到異常。如何在跟蹤日誌中獲取異常? 在此先感謝!

+0

「不要緊,是它處理... 「 - 你這是什麼意思?很顯然,如果在OperationContract的實現中處理異常,它將永遠不會被WCF基礎架構看到,因此WCF可能不會記錄它。 – Joe

+0

我的意思是在'try {} catch {}'塊中處理的異常。 – kseen

回答

2

我沒有看到在你的配置一個明顯的問題,但是這是我所用,我也看到SVC跟蹤查看例外:

<system.diagnostics> 
     <sources> 
      <source name="System.ServiceModel" switchValue="Information, ActivityTracing" propagateActivity="true"> 
       <listeners> 
        <add name="XTL" /> 
       </listeners> 
      </source> 
     </sources> 
     <sharedListeners> 
      <add initializeData="trace.svclog" type="System.Diagnostics.XmlWriterTraceListener" name="XTL" /> 
     </sharedListeners> 
     <trace autoflush="true" /> 
    </system.diagnostics> 
+0

您能否指點我在​​SvcTraceViewer中可以看到異常的地方? – kseen

+0

@kseen - 在活動視圖中,您應該在列表中看到紅色的物品。一旦你點擊其中的一個,右側面板將顯示特定的痕跡,包括紅色的,代表異常的細節和堆棧幀。 –

相關問題