WCF跟蹤調(diào)試具體代碼詳細(xì)剖析
在WCF中,有一中比較有用的操作技術(shù),教唆WCF跟蹤調(diào)試,它可以為我們帶來(lái)非常大的幫助。在WCF中提供了兩個(gè)工具可以進(jìn)行WCF跟蹤調(diào)試,我主要是用來(lái)跟蹤傳輸?shù)膞ml是否符合我定義的schema。#t#
這兩個(gè)WCF跟蹤調(diào)試的工具是:
工具路徑:C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin
SvcConfigEditor:微軟提供的用來(lái)輔助編輯WCF配置文件的工具
SvcTraceViewer:微軟提供的用來(lái)查看WCF的Trace Log的工具。
跟蹤配置
啟動(dòng)SvcConfigEditor.exe, 用這個(gè)程序打開(kāi)wcf service host程序的web.config 或者app.config,除了WMI Provider,其它的全部Enable, 在log file選擇svclog文件的保存路徑, 然后save, 如果config文件在源碼管理器,記得先簽出,才能保存。
也可以手動(dòng)配置添加如下內(nèi)容,不使用上面的WCF跟蹤調(diào)試工具
< configuration>節(jié)理添加如下內(nèi)容
- < system.diagnostics>
- < sources>
- < source name="System.ServiceModel.MessageLogging"
switchValue="Warning, ActivityTracing">- < listeners>
- < add type="System.Diagnostics.DefaultTraceListener" name="Default">
- < filter type="" />
- < /add>
- < add name="ServiceModelMessageLoggingListener">
- < filter type="" />
- < /add>
- < /listeners>
- < /source>
- < source name="System.ServiceModel"
switchValue="Warning, 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="E:\Web_messages.svclog"
- type="System.Diagnostics.XmlWriterTraceListener,
System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"- name="ServiceModelMessageLoggingListener" traceOutputOptions="Timestamp">
- < filter type="" />
- < /add>
- < add initializeData="E:\Web_tracelog.svclog"
- type="System.Diagnostics.XmlWriterTraceListener, System,
Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"- name="ServiceModelTraceListener" traceOutputOptions="Timestamp">
- < filter type="" />
- < /add>
- < /sharedListeners>
- < trace autoflush="true" />
- < /system.diagnostics>
< System.ServiceMode>節(jié)里會(huì)添加
- < diagnostics>
- < messageLogging logEntireMessage="true" logMalformedMessages="true"
- logMessagesAtTransportLevel="true" />
- < /diagnostics>
查看
啟動(dòng)SvcTraceViewer, 打開(kāi)剛才的svclog文件,調(diào)用wcf service,然后就可以看到消息的記錄。以上就是我們?yōu)榇蠹医榻B的WCF跟蹤調(diào)試的相關(guān)方法。