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。

以上是 wcf 跟踪设置 的全部内容, 来源链接: utcz.com/z/315723.html

回到顶部