Microsoft Service Trace Viewer 截获消息

来源:互联网 发布:学php需要英语基础么 编辑:程序博客网 时间:2024/04/30 03:25

WCF服务编程-WCF应用程序的消息跟踪

对于WCF的消息跟踪主要有Microsoft Service Trace Viewer(服务跟踪查看器)和tcpTrace这两个。服务跟踪查看器工具功能比较强大可以了解 WCF 侦听器生成的诊断跟踪信息,从而找到错误的根本原因。该工具提供了一种轻松查看、分组和筛选跟踪的方法,以便可以诊断、修复和验证 WCF 服务的问题。但是使用之前需要在服务端作相应的配置。tcpTrace其实就是一个通过端口映射来捕获Tcp包的工具使用起来非常简单,由于WCF的很多绑定都会走tcp协议因此使用该工具来捕获数据包会非常方便。下面就简要的介绍一下这两个工具的使用。

 

Microsoft Service Trace Viewer

Service Trace Viewer是.Net Framework自还的工具一般在C:/Program Files/Microsoft SDKs/Windows/v6.0A/Bin路径下可以找到。以《WCF服务编程-HelloWorld》中的源码为例,我们在使用之前需要对服务端的App.Config配置文件作相应的更改:


<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  
<!-- WCF 配置声明-->
  
<system.serviceModel>
    
<!--添加跟踪节点-->
    
<diagnostics performanceCounters="All" wmiProviderEnabled="true">
      
<messageLogging logEntireMessage="true" logMalformedMessages="true" logMessagesAtServiceLevel="true" logMessagesAtTransportLevel="true" maxMessagesToLog="100000"/>
    
</diagnostics>
    
<services>
        
<endpoint address="" binding="basicHttpBinding" contract="Cbcye.Contract.IHelloWorld" name=""></endpoint>
        
<host>
          
<baseAddresses>
            
<add baseAddress="http://localhost:7788/cbcye/helloworld%22/>
          </baseAddresses>
        </host>
      </service>
    </services> 

<!--跟踪节点配置-->
  <system.diagnostics >
    <sharedListeners>
      <add name="
sharedListener"
           type
="System.Diagnostics.XmlWriterTraceListener"
           initializeData
="c:/temp/trace.svclog" />
    
</sharedListeners>
    
<sources>
      
<source name="System.ServiceModel" switchValue="Verbose, ActivityTracing" >
        
<listeners>
          
<add name="sharedListener" />
        
</listeners>
      
</source>
      
<source name="System.ServiceModel.MessageLogging" switchValue="Verbose">
        
<listeners>
          
<add name="sharedListener" />
        
</listeners>
      
</source>
    
</sources>
  
</system.diagnostics> 

</configuration> 

运行WCF服务端与客户端,让WCF服务端与客户端产生通讯数据。

打开服务跟踪查看器打开配置文件中initializeData属性的路径相对应的文件,我们就可以在查看器中查看到相应的数据。

image

 

tcpTrace

tcpTrace的使用比较简单在启动tcpTrace时会输入要映射的端口即可。如《WCF服务编程-HelloWorld》中的示例,在使用之前我们需要先改变客户端请求的地址的端口从7788改为8080,这样客户端在请求服务时会把数据发到监听8080端口的tcpTrace,tcpTrace之后会将数据转发给7788端口的服务。

image

tcpTrace监听到的WCF数据(注意:tcpTrace仅支持通过tcp传输的消息)

image

原创粉丝点击