`

【推荐】捕获WCF服务端与客户端产生的通讯数据并分析

WCF 
阅读更多

【推荐】捕获WCF服务端与客户端产生的通讯数据并分析

现在很多都在采用WCF做为服务端,在我们的.NET快速开发整合框架(RDIFramework.NET)中也不例外,在采用这种方式时,我们经常需要知道我们的客户端,在访问WCCF服务端时,WCF服务端究竟做了那些工作,也就是运行WCF服务端与客户端后,我们想查看WCF服务端与客户端产生通讯数据。如何才能查看产生的通讯数据呢?这就是微软提供的Windows Communication Foundation (WCF) 服务跟踪查看器,它可帮助分析 WCF 侦听器所生成的活动跟踪 (*.svclog) 诊断跟踪为合并、查看和筛选跟踪消息提供了一种简单方法,可以诊断、修复和验证 WCF 服务问题。

在把WCF服务部署到Windows服务时,对于这个服务端其运行的全过程在开发环境下,我们需要予以把握。如何对WCF应用程序的消息进行跟踪呢,本文将.NET快速开发整合框架(RDIFramework.NET)中实际的环境进行模拟整个过程。

一、配置WCF应用程序支持消息的跟踪

要想跟踪WCF应用程序运行过程中的相关信息,我们需要对WCF应用程序进行部署,在.NET快速开发整合框架(RDIFramework.NET),WCF服务默认部署在Windows服务下,服务启动后,如下图所示: 要想捕获软件在运行过程中调用WCF服务所产生的一系列消息,我们首先需要对服务端的App.Config配置文件作相应的更改,如下图所示:        同时,我们还要配置捕获的信息所存放的地方:

   通过以上的配置,我们再开启我们的WCF服务,开启后运行软件做一些操作,可以看到在我们:c:\temp\RDIFramework.svclog 下已经记录了相应操作所产生的WCF消息。

 

  二、查看WCF产生的消息

 

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

  要打开服务跟踪查看器,可以通过使用命令窗口定位到 WCF 安装位置 (C:\Program Files\Microsoft SDKs\Windows\v6.0\Bin),然后键入 SvcTraceViewer.exe,可以启动服务跟踪查看器。或者按下图操作也可打开服务跟踪查看器:

  打开服务跟踪查看器后,我们通过“服务跟踪查看器”打开我们跟踪的消息记录,通过WCF服务端的配置,跟踪的消息记录存放在C:\temp\RDIFramework.svclog,打开后如下图所示:


   通过这个窗口,我们可以非常清楚全面的查看整个操作与运行过程,以让我们可以诊断、修复和验证 WCF 服务问题。通过“服务跟踪查看器”,我们可以方便的查看跟踪数据,筛选跟踪数据,查找跟踪的数据,定位跟踪数据等,让我们的服务端应用程序在发布前做这样的评估,可以更加的健壮,当然了,跟踪也是大耗性能的,因此,在正式发布后应该关闭对WCF服务的跟踪。

 

作者: EricHu
出处: http://blog.csdn.net/chinahuyong
微博: 腾讯
Email: 406590790@qq.com
QQ 交流:406590790 
平台博客: 【CSDN】http://blog.csdn.net/chinahuyong
         【CNBLOGS】http://www.cnblogs.com/huyong
关于作者:高级工程师、信息系统项目管理师、DBA。专注于微软平台项目架构、管理和企业解决方案,多年项目开发与管理经验,曾多次组织并开发多个大型项目,精通DotNet,DB(SqlServer、Oracle等)技术。熟悉Java、Delhpi及Linux操作系统,有扎实的网络知识。在面向对象、面向服务以及数据库领域有一定的造诣。现从事DB管理与开发、WinForm、WCF、WebService、网页数据抓取以及ASP.NET等项目管理、开发、架构等工作。
如有问题或建议,请多多赐教!
本文版权归作者和CNBLOGS博客共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,如有问题,可以通过邮箱或QQ 联系我,非常感谢。

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    wcf服务端与客户端的例子

    总结来说,WCF服务端与客户端的交互涉及到服务接口定义、数据契约、服务宿主、终结点配置、绑定类型等多个方面。客户端则通过服务引用生成代理类,配置连接信息并调用服务。WCF的强大在于其灵活性和高度可配置性,能...

    WCF http绑定服务端 客户端调用

    - WCF服务端和客户端都可以捕获并处理通信异常,如`CommunicationException`和`TimeoutException`。 - 应使用适当的错误处理机制,如 faults 或者自定义异常。 **调试与诊断**: - 使用WCF诊断工具如消息日志、跟踪...

    Android访问WCF服务源码(Android 客户端)

    在WCF服务端,首先需要创建一个服务接口,并定义操作契约。然后,添加数据合约,用于定义传输的数据结构。接着,启用JSON绑定,例如使用`WebHttpBinding`并开启`WebHttp`行为,使服务支持RESTful风格的调用。 3. *...

    WCF客户与服务端通信Domo(winform)

    总结来说,"WCF客户与服务端通信Domo(winform)"是一个基础教程,展示了如何使用WCF在WinForm应用中创建服务和客户端,使得它们能相互通信。通过这个Demo,初学者可以学习到WCF的基本概念、服务的创建与配置、...

    wcf c# 服务器 客户端 示例

    一、WCF服务端创建 1. 创建服务接口:首先定义一个服务接口,该接口将包含服务要暴露的操作。例如,我们可以创建一个名为`IService`的接口,其中包含一个方法`GetString`: ```csharp [ServiceContract] public ...

    简单的WCF小实例客户端

    **WCF(Windows Communication Foundation)**是微软.NET框架下的一个组件,用于构建可互操作的分布式应用程序...通过这个实例,开发者可以深入理解WCF客户端如何与服务端进行交互,以及如何配置和管理WCF服务的连接。

    Android访问WCF服务源码(WCF服务端)

    在Android开发中,有时我们需要与远程服务器进行交互,获取或发送数据。WCF(Windows Communication Foundation)是微软推出的一种面向服务的通信框架,用于构建高度互操作的、面向服务的应用程序。本篇将深入探讨...

    C#远程调用客户端订阅服务端示例

    本示例聚焦于"C#远程调用客户端订阅服务端",这是一种常见于分布式系统中的通信模式,用于实现客户端和服务端之间的实时数据交互。在这样的系统中,服务端可以发布信息,而客户端则可以通过订阅服务端的事件来接收...

    C#代码:获得链接到WCF服务的WPF客户端的IP地址

    要获取WCF客户端的IP地址,我们需要在服务端捕获请求上下文。在WCF中,`OperationContext`类提供了对当前操作的上下文访问,其中包括客户端的信息。以下是一个简单的示例: ```csharp using System.ServiceModel; ...

    silverlight与wcf互相通讯

    在WCF服务中,可以通过`FaultException`抛出错误信息,客户端则可以通过异常处理机制捕获并显示这些错误。 总结来说,Silverlight与WCF的互相通讯是一个复杂但至关重要的过程,它涉及到服务的创建、引用、调用以及...

    android wcf webservice客户端+服务器

    Android WCF Webservice客户端与服务器的交互是移动应用与企业级服务进行数据交换的一种常见方式。Windows Communication Foundation (WCF) 是微软推出的一种面向服务的通信框架,它为构建高度可互操作的分布式应用...

    WCF服务功能

    在“WCF服务端与客户端对联”这个主题中,我们需要了解以下几个关键知识点: 1. **服务宿主**:WCF服务需要被宿主才能运行。宿主可以是IIS、自定义的应用程序或Windows服务,它们负责承载服务并使服务对外暴露。 2...

    C# 桌面应用程序WCF通讯应用实例

    **C# 桌面应用程序WCF通讯应用实例** Windows Communication Foundation(WCF)是微软.NET框架中的一个组件,用于构建可互操作的分布式系统。它提供了一种统一的编程模型,可以创建服务并使它们在不同的应用程序...

    WCF在同步和异常调用情况下的异常捕获

    总的来说,无论是在同步还是异步调用场景下,理解和正确处理WCF中的异常捕获是保证服务可靠性和客户端健壮性的关键。通过使用`FaultContract`,我们可以提供更详细的错误信息,使得客户端能够更有效地处理错误状况。...

    Silverlight捕捉WCF异常

    当服务方法抛出这个类型的异常时,客户端可以捕获并处理`MyCustomFault`。 总结来说,处理Silverlight中的WCF异常涉及以下几个关键步骤: 1. 配置服务端的跨域策略文件,允许Silverlight应用进行跨域访问。 2. 在...

    WCF视频音频监控 最近做的一个小东东

    1. **WCF实现**:整个系统是用WCF技术构建的,这涉及到服务端和客户端之间的通信协议、数据交换格式和服务行为的定义。 2. **客户端监控**:存在一个客户端应用程序,它可以连接到服务端,接收并显示来自监控源的...

    安卓与wcf通信传递复杂对象

    总的来说,Android与WCF通信传递复杂对象涉及服务端接口定义、数据序列化、客户端请求和响应处理等多个环节。理解这些概念并熟练掌握其实践是构建可靠、高效跨平台应用程序的关键。在实际开发中,应不断优化和调整,...

    基于wcf的C/S聊天

    WCF提供了异常传播和错误处理策略,可以在服务端和客户端之间有效地捕获和处理异常。 10. **调试与日志记录**:在开发过程中,调试和日志记录可以帮助开发者快速定位问题。WCF提供了一些内置的诊断工具,如消息追踪...

    vs2005关于WCF的DEMO

    2. **编写客户端代码**:通过服务代理类实例,调用服务中的方法,实现客户端与服务端的通信。 3. **配置客户端**:客户端也需要配置相应的连接信息,通常在`app.config`或`web.config`中,设置与服务对应的终结点、...

    WCF 实现文件上传下载

    - 在WCF服务端,我们需要实现服务契约中的方法。`UploadFile`方法可能涉及文件流的接收、文件路径的处理以及文件的写入。`DownloadFile`方法则需要找到指定文件并返回其内容的流。 3. **配置服务(Service ...

Global site tag (gtag.js) - Google Analytics