wcf 跟踪设置
示例
WCF跟踪建立在System.Diagnostics之上。要使用跟踪,您应该在配置文件或代码中定义跟踪源。
默认情况下未启用跟踪。要激活跟踪,必须创建跟踪侦听器并为配置中的选定跟踪源设置除“关”以外的跟踪级别;否则,WCF不会生成任何跟踪。
以下示例显示如何启用消息日志记录并指定其他选项:
<configuration> <system.diagnostics> <sources> <source name="System.ServiceModel" switchValue="All" propagateActivity="true" > <listeners> <add name="wcf_trace"/> </listeners> </source> <source name="System.ServiceModel.MessageLogging"> <listeners> <add name="wcf_trace"/> </listeners> </source> </sources> <sharedListeners> <add name="wcf_trace" type="System.Diagnostics.XmlWriterTraceListener" initializeData="c:\temp\wcf_trace\DistanceService.svclog" /> </sharedListeners> </system.diagnostics> <system.serviceModel> <diagnostics wmiProviderEnabled="true"> <messageLogging logEntireMessage="true" logMalformedMessages="true" logMessagesAtServiceLevel="true" logMessagesAtTransportLevel="true" maxMessagesToLog="3000" /> </diagnostics> </system.serviceModel> </configuration>
initializeData指定该侦听器的输出文件的名称。如果未指定文件名,则会根据使用的侦听器类型生成一个随机文件名。
记录级别和选项
服务级别
在此层记录的消息即将输入(接收)或离开(发送)用户代码。如果定义了过滤器,则仅记录与过滤器匹配的消息。否则,将记录服务级别的所有消息。除了“可靠消息传递”消息外,还会在此级别记录基础结构消息(事务,对等通道和安全性)。在流式消息上,仅记录头。此外,安全消息在此级别被记录为解密。
运输等级
在此层记录的消息已准备好进行编码或解码,以便在网上传输时或在网上传输后进行。如果定义了过滤器,则仅记录与过滤器匹配的消息。否则,将记录传输层的所有消息。所有基础结构消息都记录在此层,包括可靠的消息传递消息。在流式消息上,仅记录头。此外,安全消息在此级别记录为已加密,除非使用安全传输(例如HTTPS)。
格式错误
格式错误的消息是WCF堆栈在处理的任何阶段都会拒绝的消息。格式错误的消息按原样记录:如果是这样,则使用不正确的XML进行加密,等等。maxSizeOfMessageToLog定义了要记录为CDATA的消息的大小。默认情况下,maxSizeOfMessageToLog等于256K。有关此属性的更多信息,请参见“其他选项”部分。
如果要禁用跟踪源,则应改用messageLogging元素的logMessagesAtServiceLevel,logMalformedMessages和logMessagesAtTransportLevel属性。您应该将所有这些属性设置为false。