Allen Wang

专注web开发
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

WCF Development Tools -- WcfSvcHost.exe & WcfTestClient.exe

Posted on 2007-12-08 16:28  AllenWang.NET  阅读(932)  评论(0编辑  收藏  举报

VS.NET 2008提供了两个工具WcfSvcHost.exe、WcfTestClient.exe用来辅助开发人发对自已开发的Wcf Service进行测试,我们可以不用写WcfHost Project,WcfTestHost.exe会帮助我们自动创建Wcf Service Host。我们可以不用写Wcf Service Test Project,WcfTestClient.exe提供了一个可视化窗口显示Service可用的操作并允许输入接口数据进行调用和单步调试Service。
两个工具的位置:C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE  
功能演示如下
1) 在VS.NET 2008下创建一个WCF Service Library

注:一定要用WCF中的Project Template创建Project才可以实现下面的功能,不然要对Project类型文件进行改动

2) 点击OK创建Wcf ServiceLibary, 并查看Project的Debug属性, 可以看到在Command line arguments中的/client:"WcfTestClient.exe"

3)按F5对Service进行调试, 可以看到下面红框中的图标,单击鼠标右键点击Open, 定义的Service已经在WCF Service Host工具中已经自动Host了。



4) 同时系统会自动弹出WcfTestClient.exe的对话框供我们Debug Service

即可以查看格化化的请求响应数据还可以以XML的形式查看请求响应结果

这样我们就可以不用单独写WCF Service的Host Project就以实现对Service的Debug

下面对不是以WCF Project Template所创建的Project不能实现上述的功能的说明
1) 假设创建了一个Class Library的Project

2) 根据上面工程的设置对此工程进行了同样的设置Serive文件及配置,但是它不能像上个工程一样工作

3) 最后比较了两个WcfServiceLibrary.csproj的文件的异同,在当前工程文件中缺少红框中的部分,对当前工程文件更改后可以像上面的工程一样工作(这也许是MS的一个Bug)


用命令行的形式手工执行WcfTestClient.exe
WcfTestClient.exe 可以执行.NET 3.0 / 3.5的WCF Service,可用手工的方式从命令行可同时启动一个或多个WcfService进行测试
命令:WcfTestClient.exe yourserviceeMexEndpointUrl anotherserviceMexEndpointUrl

请确保在运行WcfTestClient.exe工具之前,WcfService已经enabled metadata publishing(可参见 http://go.microsoft.com/fwlink/?LinkId=65455)

WcfTestClinet使用起来比较方便,但是它对所支持的类型方面有好多限制,有可能所写的Wcf Service无法在WcfTestClient中进行测试
具体请参见 http://msdn2.microsoft.com/en-us/library/bb552364(VS.90).aspx 中 Features supported by WCF Test Client

参考:
[MSDN] Using the WCF Development Tools
http://msdn2.microsoft.com/en-us/library/bb552361(VS.90).aspx
.NET Framework3.0 Tools
http://msdn2.microsoft.com/en-us/library/aa388630(vs.85).aspx
Tools(.NET Framework Technologies)
http://msdn2.microsoft.com/en-us/library/bb400851(VS.90).aspx