代码改变世界

WCF 第九章 诊断

2011-02-12 16:56  DanielWise  阅读(671)  评论(0编辑  收藏  举报

如你在之前的章节所看到的那样,WCF为配置你的分布式应用程序和使用自定义代码扩展WCF提供了很多选项。考虑到跨机器的复杂性甚至是跨公司交互的复杂性,你仍然有很多地方去找到不可预期行为的源头。

  调试分布式程序是一个很有挑战的方面。即便你有权限一步步通过跨服务调用边界访问进程和参数表,远程逻辑可能已经被一个有不同的代码风格和运行逻辑的小组创建。过滤诊断信息来隔离一个特殊流的执行也是有一些困难的-例如,一个独立用户的跨多个服务和机器的会话。

  然而,分布式系统的挑战不仅仅是它的原始开发环境,而是要保证易于维护性因为应用程序要在生产环境中使用。IT管理员需要有效的手段来找到问题的根本原因以便于相关责任公司和开发组可以被通知到。

  幸运的是, WCF有很多内建的特性和工具可以用来诊断问题发生的原因,通常不需要做太多工作除了在你的配置文件中开启那个特性。正如你将要在这一章看到的那样,WCF利用.NET Framework 并在其上构建跟踪和诊断特性。这允许你发挥你现有的知识,它将WCF应用程序的诊断与其他应用程序的集成起来。

  在这一章,我们描述了如何使用跟踪实例来捕捉WCF事件和日志来捕捉消息交换的细节。跟踪监听器会通过一些例子描述,并显示如何为不同事件配置设置。服务跟踪浏览器(STV),是一个包含在WCF中的一个强大的工具,也会被介绍,这个工具允许你在服务调用边界间检测活动。

WCF应用程序示例

这一章使用包含在Windows SDK中的自我寄宿的示例程序。获取,配置和运行这个示例程序的细节可以在MSDN地址http://msdn2.microsoft.com/en-us/library/ms750530.aspx 上找到。如果你已经安装了SDK,你将在Basic\Service\Hosting\SelfHost\下同时找到C#和VB.NET版本的自我寄宿示例程序。

  SelfHost是一个入门的例子,包含了简单的服务和Windows控制台工程的客户端。客户端控制台应用调用WCF服务,结果同时在客户端和服务端显示。