在Visual Studio之外打开WCF测试客户端有两种方法:第一种方法是到其所在路径(Visual Studio安装路径\Common7\IDE\WcfTestClient.exe)双击打开。第二种方法是在“Visual Studio命令提示(Visual Studio Command Prompt)”中输入“WcfTestClient”命令,如图1所示:
图1
Visual Studio不同的项目模板,提供了不同的WCF测试客户端启动方法。下面这张表格是Visual Studio 2010 Beta2中,与WCF相关的项目模板:
项目模板名称 |
模板位置 |
.NET Framework版本 |
WCF服务库 |
新建项目 -> WCF结点 |
3.0/3.5/4.0 |
WCF服务应用程序 |
新建项目 -> Web结点 |
3.0/3.5/4.0 |
WCF工作流服务应用程序 |
新建项目 -> WCF结点 |
4.0 |
WF顺序服务 |
新建项目 -> WCF结点 |
3.5 |
WF状态机服务 |
新建项目 -> WCF结点 |
3.5 |
联合服务库 |
新建项目 -> WCF结点 |
3.5/4.0 |
WCF服务 |
新建网站 |
3.0/3.5/4.0 |
表1
WCF服务库、WF顺序服务、WF状态机服务:
启用调试(F5)默认会启动WCF服务主机(WCF Service Host)托管项目中的服务,并且会自动启用WCF测试客户端,请看图2:
图2
如果希望F5时,不启动WCF测试客户端,可以通过修改项目属性 -> 调试 -> 命令行参数来实现,如图3所示:
图3
WCF服务应用程序、WCF工作流服务应用程序:
当在“解决方案资源管理器(Solution Explorer)”中,焦点选定在特定服务的.svc或.xamlx文件时,F5会启动WCF测试客户端。请看图4:
图4
如果希望F5时始终启动IE,可以在.csproj.user文件里增加EnableWcfTestClientForSVC属性配置以禁用WCF测试客户端:
<Project>
<ProjectExtensions>
<VisualStudio>
<FlavorProperties>
<WebProjectProperties>
<EnableWcfTestClientForSVC>False</EnableWcfTestClientForSVC>
</WebProjectProperties>
</FlavorProperties>
</VisualStudio>
</ProjectExtensions>
</Project>
另外,在.csproj文件里还有EnableWcfTestClientForSVC属性的默认值设置。如果.csproj.user文件没有该属性的相关设置,则该属性则使用.csproj文件里默认值:
<Project>
<ProjectExtensions>
<VisualStudio>
<FlavorProperties>
<WebProjectProperties>
<EnableWcfTestClientForSVCDefaultValue>False</EnableWcfTestClientForSVCDefaultValue>
</WebProjectProperties>
</FlavorProperties>
</VisualStudio>
</ProjectExtensions>
</Project>
下表是.csproj.user和.csproj文件相关属性的设置和启动客户端类型的逻辑关系:
.csproj.user 文件设置 |
True |
False |
未设 |
未设 |
未设 |
.csproj 文件设置 |
True/False/未设 |
True/False/未设 |
True |
False |
未设 |
启动 客户端类型 |
WCF测试客户端 |
IE |
WCF测试客户端 |
IE |
IE |
表2
例如,在一个利用源代码控制的项目组中,.csproj.user文件不会被共享,而.csproj文件会被共享。如果只希望改变个人的WCF测试客户端的启动行为,则应该修改.csproj.user文件;如果希望改变开发这个项目的所有人的启动行为,则应修改.csproj文件。
联合服务库:
WCF测试客户端并不能对这种服务项目进行测试,所以F5时并不会自动启动WCF测试客户端。
WCF服务(网站):
F5时不会自动启动WCF测试客户端。如果希望获得和WCF服务应用程序相同的启动行为,可以修改C:\Users\<username>\AppData\Local\Microsoft\WebsiteCache\websites.xml文件(XP/2003系统中文件在相似位置):
<DesignTimeData>
<Website RootUrl="C:\" CacheFolder="WCFService1"EnableWcfTestClientForSVC="true"/>
</DesignTimeData>
注意在修改websites.xml文件之前请先关闭Visual Studio,否则Visual Studio关闭时会重写覆盖websites.xml文件。